Windows 서버 (배치 파일, java, perl, csharp 스크립트/응용 프로그램 혼합)에서 다양한 프로세스를 실행 중입니다. 이 프로세스는 Autosys를 사용하여 시작됩니다. Windows에서 autosys 에이전트는 항상 내가 'cmd를/C'와 함께 작업 정의에서 제공하는 명령을 접두사 그 자체로이 문제가되지 않습니다Autosys : KILLJOB 이벤트가 고아 프로세스를 벗어남
C:\Windows\system32\cmd.exe /C foobar.exe
(아래 예 참조),하지만 난 보내 작업을 죽일 때 autosys KILLJOB 이벤트 (Autosys 설명서에 따라 프로세스에 kill 신호가 발생한 인터럽트가 전송 됨), foobar.exe가 종료되지 않고 부모 cmd.exe가 종료됩니다. foobar.exe는 고아 프로세스로 끝나며 수동으로 작업 관리자를 사용하여 종료하려면 서버에 로그인해야합니다.
autosys의 종료 신호가 실제 프로세스로 전달되도록 다른 사람이 솔루션을 가지고 있습니까?
감사합니다.
감사합니다. 문서에서 찾으십시오. 나는 foobar.exe에서 SEND_SIGNAL 이벤트 캡처를 시도하고 Autosys 에이전트가 프로세스를 종료 할 때 신호가 전달되지 않습니다. 이 문제를 해결하기 위해 부모 pid를 캡처하는 프로세스 래퍼 실행 파일을 작성하여 프로세스를 시작한 autosys 에이전트에 대한 핸들을 얻은 다음 하위 프로세스를 시작합니다. 프로세스 래퍼는 부모 pid가 종료 될 때까지 기다리고 감시하고, 모든 자식 프로세스를 정리하고 종료합니다. 이것은 지금까지 잘 작동하는 것 같습니다. –