2012-08-01 4 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에/아파치 ... [작업 isRunning는] 반환 NO ... 내가 시작하여 주위에 일하고 있어요 ** 굵은 **의 경우에 작동하는 것/bin/sh -c/bin/ps aux | grep httpd ** bold ** 출력에/usr/sbin/httpd 경로가있는 프로세스가 포함되어 있는지 확인하는 중 ... 알아요. – alberto2000