Xcode 检查进程是否正在cocoa应用程序中运行

Xcode 检查进程是否正在cocoa应用程序中运行,xcode,cocoa,apache,nstask,Xcode,Cocoa,Apache,Nstask,我是一名可可初学者,正在尝试构建一个个人应用程序,用于管理本地Apache/MySQL进程。我想检查httpd(/usr/sbin/httpd)是否正在运行。我搜索并找到了一些指向NSTask和isRunning方法的提示,但无法让它运行 如何检查此进程是否正在运行 此外,这是检查OSX内置Apache是否正在运行的可靠方法吗 感谢您的帮助。是的,NSTask是检查或启动其他进程的可靠方法。以下代码必须帮助您实现所需的功能 NSTask *task = [[NSTask alloc] init]

我是一名可可初学者,正在尝试构建一个个人应用程序,用于管理本地Apache/MySQL进程。我想检查httpd(/usr/sbin/httpd)是否正在运行。我搜索并找到了一些指向NSTask和isRunning方法的提示,但无法让它运行

如何检查此进程是否正在运行

此外,这是检查OSX内置Apache是否正在运行的可靠方法吗


感谢您的帮助。

是的,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];

遗憾的是,这种简单的方法在/usr/sbin/httpd的情况下似乎不起作用。。。[任务正在运行]返回否。。。我正在通过启动bold**/bin/sh-c/bin/ps aux | grep httpdbold**并检查输出是否包含路径为/usr/sbin/httpd的进程来解决这个问题。。。我知道,与其说是一个解决方案,不如说是一个破解方案,但暂时还可以。