正在运行的命令终止后关闭吗?

正在运行的命令终止后关闭吗?

我有一个长时间运行的命令,但忘记添加&& shutdown它了。有什么方法可以在命令执行完成后关闭正在运行的 PC 吗?

答案1

首先用 找到对应的pid pgrep,然后运行:

while kill -0 pid; do sleep 5; done; shutdown

来自手册页kill

如果信号为 0,则不会发送实际信号,但仍会执行错误检查。

因此 while 循环的条件保持为真直到该命令终止。

答案2

这个 while 循环会command每 10 秒检查一次后台是否有任何正在运行的进程,如果没有发现,则会启动 +5 分钟的关机计数,你可以使用以下命令取消该计数shutdown -c

$ while true; do \
    (($(pgrep -c command) > 0)) && \
      sleep 10 || { shutdown +5; exit 0; }; done &

相关内容