nohup
当尝试在后台启动 Python 脚本时,会出现错误 125 并退出,但使用通配符指向同一个文件时,却nohup
可以正常工作。
root@rpi_2:/home/pi/shortcuts# nohup -c bash 'python /home/pi/shortcuts/python/garage_topbutton_aio_pir_v2.py' > /dev/null 2>&1 &
[1] 26261
root@rpi_2:/home/pi/shortcuts#
[1]+ Exit 125 nohup -c bash 'python /home/pi/shortcuts/python/garage_topbutton_aio_pir_v2.py' > /dev/null 2>&1
root@rpi_2:/home/pi/shortcuts# ls /home/pi/shortcuts/python/garage_topbutton_aio_pir_v2.py
/home/pi/shortcuts/python/garage_topbutton_aio_pir_v2.py
root@rpi_2:/home/pi/shortcuts# nohup bash -c 'python /home/pi/shortcuts/python/*pir*v2*' > /dev/null 2>&1 &
[1] 26304
root@rpi_2:/home/pi/shortcuts# ps topbutton
USER PID %CPU %MEM START TIME STAT COMMAND
root 26304 0.1 0.6 10:27 0:00 S<l python /home/pi/shortcuts/python/garage_topbutton_aio_pir_v2.py
root@rpi_2:/home/pi/shortcuts#
我很好奇,因为这以前从未发生过。
答案1
nohup
当它获得无效选项时退出并显示错误 125。
由于重定向 ( > /dev/null 2>&1
),您看不到错误消息
$ nohup -c bash 'python /home/pi/shortcuts/python/garage_topbutton_aio_pir_v2.py'
nohup: invalid option -- 'c'
Try 'nohup --help' for more information.
所以错误发生是因为你交换了-c
和bash
。
另外,不使用通配符时不需要执行 shell,因此这足以执行脚本:
nohup python /home/pi/shortcuts/python/garage_topbutton_aio_pir_v2.py > /dev/null >&1 &