谢谢你的帮助!
我想从shell脚本启动和停止Python脚本.开始工作正常,但我想在10秒后停止/终止Python脚本.(这是一个不断计数的计数器).芽是不会停止....我认为它挂在第一行.
什么是开始等待10秒的正确方法?
Shell脚本:
python /home/pi/count1.py
sleep 10
kill /home/pi/count1.py
Run Code Online (Sandbox Code Playgroud)
它还没有工作.我明白在后台编写脚本.那工作!但在做完后,我从树莓树上得到另一条评论:
python /home/pi/count1.py &
sleep 10; kill /home/pi/count1.py
Run Code Online (Sandbox Code Playgroud)
/home/pi/sebastiaan.sh:line 19:kill:/home/pi/count1.py:参数必须是进程或作业ID
它必须在:(但是什么?感谢您的帮助!)
sleep 10; kill /home/pi/count1.py
Run Code Online (Sandbox Code Playgroud)
你是对的,shell脚本在第一行"挂起",直到python脚本完成.如果没有,则shell脚本将不会继续.因此,您必须&在shell命令的末尾使用它在后台运行它.这样,python脚本启动,shell脚本继续.
该kill命令不采用路径,它采用进程ID.毕竟,您可能会多次运行相同的程序,然后尝试杀死第一个或最后一个.
bash shell支持$!变量,它是最后一个后台进程的pid.
您当前的示例脚本是错误的,因为它不会并行运行python作业和睡眠作业.没有装饰,脚本将等待python作业完成,然后睡10秒,然后杀死.
你可能想要的是:
python myscript.py & # <-- Note '&' to run in background
LASTPID=$! # Save $! in case you do other background-y stuff
sleep 10; kill $LASTPID # Sleep then kill to set timeout.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4962 次 |
| 最近记录: |