![고아 프로세스를 생성하지 않고 /sbin/runscript를 사용하여 /etc/init.d에서 프로그램을 시작합니다.](https://linux55.com/image/100561/%EA%B3%A0%EC%95%84%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EB%A5%BC%20%EC%83%9D%EC%84%B1%ED%95%98%EC%A7%80%20%EC%95%8A%EA%B3%A0%20%2Fsbin%2Frunscript%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%2Fetc%2Finit.d%EC%97%90%EC%84%9C%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%84%20%EC%8B%9C%EC%9E%91%ED%95%A9%EB%8B%88%EB%8B%A4..png)
/etc/init.d
프로세스를 실행하는 스크립트가 있습니다. OpenRC이지만 /sbin/runscript
시작되는 프로세스는 고아가 됩니다. 실제로 명령을 실행하면 다음과 같습니다.
ps -elf | awk '{if ($5 == 1){print $4" "$5" "$15}}'
이 고아 프로세스의 ppid 1이 표시됩니다. 즉, 고아 프로세스 생성을 방지하려면 어떻게 해야 합니까 /sbin/runscript
? 일반 스크립트를 사용하면 wait
프로세스를 실행하는 명령 뒤와 &
스크립트를 시작하는 명령 끝에 넣을 수 있습니다 . 하지만 시작 스크립트를 사용하여 이 작업을 어떻게 수행할 수 있습니까?
초기화 스크립트의 내용은 다음과 같습니다.
start() {
ebegin "Starting ${RC_SVCNAME}"
start-stop-daemon --start --background --chdir "${HWBR_HOME}/Myscript" --exec "java" --make-pidfile --pidfile "${HWBR_MYSCRIPT_PIDFILE}" --stdout /dev/null -- -jar Myprocess.jar
rv=$?
eend $rv
}