아래에 다음 스크립트가 있습니다라즈베리 파이 제시:
파일 test.sh
에는 다음이 포함됩니다.
#!/bin/sh -e
nohup sleep 321 &
sleep 120
false
exit 0
터미널 세션에서 일반 사용자로 실행할 때 다음이 발생합니다.
pi@raspberrypi:~ $ ps -ejf |grep sleep
pi 5073 5072 5072 4618 0 15:16 pts/1 00:00:00 sleep 321
pi 5074 5072 5072 4618 0 15:16 pts/1 00:00:00 sleep 120
스크립트가 종료된 후 sleep 321
프로세스의 상위가 다시 지정되고 예상대로 계속 실행됩니다.
pi@raspberrypi:~ $ ps -ejf |grep sleep
pi 5073 1 5072 4618 0 15:16 pts/1 00:00:00 sleep 321
왜 이것이 에서 작동하지 않습니까 rc.local
? 실행 명령이 nohup
방금 종료되었습니다.
pi@raspberrypi:~ $ ps -ejf |grep sleep
root 450 449 449 449 0 15:45 ? 00:00:00 sleep 321
root 451 449 449 449 0 15:45 ? 00:00:00 sleep 120
120초가 지나면 sleep 321
프로세스가 사라집니다.
rc.local
false
로 바꿀 때만 작동 하므로 false || true
스크립트 실행과 관련이 있는 것 같습니다. 그런데 -e
터미널에서 실행하는 것과 시작 시 실행하는 것 사이에 차이가 있는 이유는 무엇입니까?test.sh
rc.local