【问题标题】:Check if process is running from within cocoa app检查进程是否从可可应用程序中运行
【发布时间】:2012-08-01 12:06:04
【问题描述】:

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

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

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

感谢您的帮助。

【问题讨论】:

    标签: xcode cocoa apache nstask


    【解决方案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];
    

    【讨论】:

    • 遗憾的是,这种简单的方法在 /usr/sbin/httpd 的情况下似乎不起作用... [task isRunning] 返回 NO ... 我正在通过启动 来解决它粗体**/bin/sh -c /bin/ps aux | grep httpdbold** 并检查输出是否包含路径为 /usr/sbin/httpd ...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-27
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多