gpt4 book ai didi

python - 如何从 shell 启动和停止 Python 脚本

转载 作者:行者123 更新时间:2023-11-28 20:04:11 44 4
gpt4 key购买 nike

感谢您的帮助!

我想从 shell 脚本启动和停止 Python 脚本。开始工作正常,但我想在 10 秒后停止/终止 Python 脚本。 (这是一个不断计数的计数器)。 bud is won't stop....我认为它卡在第一行。

开始等待 10 秒和停止的正确方法是什么?

shell 脚本:

python /home/pi/count1.py

sleep 10

kill /home/pi/count1.py

它还没有工作。我得到了在后台执行脚本的意义。那行得通!但是我在做完之后从我的树莓中得到了另一个评论:

python /home/pi/count1.py & 

sleep 10; kill /home/pi/count1.py

/home/pi/sebastiaan.sh: 第 19 行:kill:/home/pi/count1.py: arguments must be process or job IDs

它必须在:(但是什么?感谢您的帮助!)

sleep 10; kill /home/pi/count1.py

最佳答案

没错,shell 脚本在第一行“挂起”,直到 python 脚本完成。如果没有,shell 脚本将不会继续。因此,您必须在 shell 命令末尾使用 & 才能在后台运行它。这样,python 脚本启动,shell 脚本继续。

kill 命令不采用路径,它采用进程 ID。毕竟,您可能会多次运行同一个程序,然后尝试终止第一个或最后一个。

bash shell 支持$! 变量,它是最后一个后台进程的pid。

您当前的示例脚本是错误的,因为它没有并行运行 python 作业和 sleep 作业。没有修饰,脚本将等待 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.

关于python - 如何从 shell 启动和停止 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37511265/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com