#!/bin/ksh
# start_service: start the service
my_server_executable 2>&1 | my_pipe_following_shell_script &
exit 0
명령줄에서 위 스크립트를 실행한 후 start_service
실행 중인 프로세스가 명령을 사용하는 상위 프로세스라는 것을 확인했으며 예상한 결과는 다음과 같습니다.ps
bash
my_pipe_following_shell_script
my_server_executable
그리고 필요하다후자는 PID 1( )이 소유합니다 init
.
이런 일이 발생하는 이유와 이를 방지하는 방법에 대한 설명을 찾고 있습니다..
또한, 뒤에서 무슨 일이 일어나고 있는지 디버깅/검사하려면 어떻게 해야 합니까? 달리기는 별로 도움이 start_service
되지 strace
않았습니다. 출력에서 내가 찾은 유일한 흥미로운 줄은 다음과 같습니다.
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb7f05708) = 30431
30431
PID는 어디에 있습니까 my_pipe_following_shell_script
?
리눅스 2.6.18-308.16.1.el5PAE
ksh 버전 sh(AT&T Research) 93t+ 2010-02-02
GNU bash, 버전 3.2.25(1)-릴리스(i686-redhat-linux-gnu)