24小时后需要停止脚本

Mah*_*har 3 bash scripts

我想运行我的脚本24 小时,然后即使进程仍在继续,也需要停止它。

pLu*_*umo 20

使用timeout

timeout 24h my_script
Run Code Online (Sandbox Code Playgroud)

或者用于at在特定时间杀死,如下所示:

timeout 24h my_script
Run Code Online (Sandbox Code Playgroud)

使用可以有一些好处,例如,当通过当前终端(-> )at启动脚本并分离时,您可以关闭连接/终端。 但您应该注意,如果脚本在时间结束之前停止,则 PID 可能会被重用。您也许可以通过其他方式找到 PID,例如or或 so。sshdisown
ps auxpkill myscript.sh

您还可以将screenornohup与第一个命令一起使用。

  • 请注意,pid 最终会被重用,因此 `at` 是否合适取决于它运行的上下文:https://unix.stackexchange.com/a/414974/5471 (2认同)
  • 通过 ssh 启动进程(或者关闭终端)时,“at”没有任何具体好处,因为会话关闭时脚本将终止,除非您使用类似“nohup my_script”的内容启动它,但随后您可能会也可以使用“nohup timeout 86400 my_script”来代替。 (2认同)