2012-08-01 68 views
2

我是一名可可初學者,並且正在嘗試構建一個供個人使用的應用,以管理本地的Apache/MySQL進程。我想檢查httpd(/ usr/sbin/httpd)是否正在運行。我搜索並發現了一些提示,指向NSTask和isRunning方法,但無法運行。檢查進程是否從可可應用內運行

如何檢查此過程是否正在運行?

此外,這是檢查OSX內置Apache是​​否正在運行的可靠方法嗎?

感謝您的任何幫助。

回答

1

是NSTask是檢查或啓動其他進程的可靠方法。下面的代碼必須幫助你實現你所需要的。

NSTask *task = [[NSTask alloc] init]; 

[task setLaunchPath:@"/usr/sbin/httpd"]; 

if([task isRunning]) 
{ 
    NSLog(@"Hurray Apache running!!"); 
} 

//If task is not running launch it yourself. 

else 
{ 
    [task launch]; 

    if([task isRunning]) 
    { 
     NSLog(@"Hurray Apache running!!"); 
    } 
} 

[task release]; 
+0

可悲的是,這麼簡單的方法似乎並不在的情況下,工作的/ usr/sbin目錄/ httpd的...... [任務isRunning];否...我工作圍繞它通過啓動** **大膽/ bin/sh -c/bin/ps aux | grep httpd ** bold **並檢查輸出中是否包含路徑爲/ usr/sbin/httpd的進程...我知道,相當於解決方案的破解,但暫時可以。 – alberto2000 2012-08-02 10:39:27

相關問題