2009-10-15 3 views
1

단위 테스트를 실행하도록 구성된 launchd 작업이 있습니다. 이제는 단위 테스트가 중단 될 것입니다 (보통 잘못된 코드로 인해). 내 검사는 대개 몇 분 밖에 걸리지 않는다는 것을 알고 있습니다. 그들이 교수형에 처해있을 때, 나는 보통 약 1 시간 동안 그것을 알아 차리지 못한다. 그 시점에서 나는 활동 모니터를 열어 강제로 내 검사를 수동으로 죽여야한다. 나는 launchd이 나를 위해 이것을하고 싶다. 특정 시간이 지난 후 launchd가 자동으로 내 작업을 죽일 수 있습니까?launchd 작업에 대한 자동 시간 제한

나는 launchd man page 찾고 있었고, 나는 몇 유망한 키 (TimeOutExitTimeOut 등) 나타났습니다하지만 내가 찾고 꽤 게 아니에요 같은 설명에 문구가 보인다.

답변

1

TimeOutExitTimeOut으로 재생 한 후 launchd에서 일정 시간이 지난 후에 프로세스를 죽일 수있는 방법이 없다고 결론을 냈습니다.

내 프로그램 자체에 필요한 코드를 추가했습니다. (내 프로그램은 단순한 단위 테스트 이상을 수행합니다)

2

launchd는 프로세스가하는 일에 대해 알거나 알 수있는 방법이 없습니다. 종료하지 않고 몇 초가 지나면 행복합니다.

하나의 가능성은 launchd에의 감시 기능을 사용하고 있습니다 :

0

(이 세미 원시 아이디어가 아니라 광택 솔루션입니다 참고.). 파일이 시작될 때 파일을 터치하도록 단위 테스트를 사용자 정의 할 수 있으면 파일을 감지 할 때 별도의 launchd 태스크를 시작할 수 있습니다. 단위 테스트 스크립트가 지정된 시간 간격 내에 파일을 삭제하지 않으면 파일을 삭제해야합니다. 이렇게하려면 워치 독 작업을 수행하여 단위 테스트의 PID를 얻고 원하는 간격 동안 휴면 상태로 만든 다음 해당 프로세스가 아직 실행중인 경우 단위 테스트를 종료하는 스크립트를 실행하게 할 수 있습니다. YMMV.

+0

이것은 내 프로그램 내에서 두 번째 스레드로 실행된다는 점을 제외하고는 구현이 끝난 것과 비슷합니다. –