我下面有以下脚本树莓派杰西:
文件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