如何知道后台作业是否完成?

如何知道后台作业是否完成?

我通过另一个脚本 (do_manythings) 在后台调用脚本 (do_something),如下所示。

nohup do_something &

我如何在父脚本 (do_manythings) 中知道调用的作业 (do_something) 已完成?

答案1

如果您想启动后台作业,做一些其他事情,然后停止并等待后台作业完成,您可以这样做

nohup do_something &
PID=$!
...更多东西...
等待$pid

或者,您可以像这样测试作业是否已退出:

nohup do_something &
PID=$!
...更多东西...
ps -p $pid > /dev/null
[ $? == 1 ] && echo“它不见了,伙计!”

答案2

如果您想用作守护程序,您还可以查找start-stop-daemon(参考资料中的示例)。/etc/init.d/do_something

答案3

你可以检查一下

ps -ef | grep 'do_something

如果结果显示,则您的脚本仍在运行。

你也可以跑

ps -ef | grep 'your_user_name'

检查您 ID 上所有活动的正在运行的作业。

相关内容