我想要一个 bash 脚本在某个作业完成时执行一个命令(报告状态信息)。我正在运行(使用脚本)许多程序并使用 nohup 将它们发送到后台。当他们完成时,我想执行一个收集信息并报告它的脚本。请注意,我知道我可以有一个带有 sleep 的 for 循环,它会主动检查 pid 是否仍在作业列表中。但我想知道是否有办法告诉系统运行这个脚本,例如通过向 nohup 添加选项。
问问题
478 次
3 回答
1
您可以nohup
使用一个脚本来运行您想要运行的命令,然后再运行完成后的作业。
例如,创建runtask.sh
:
runjob
collect_and_report
接着:
% nohup runtask.sh
于 2012-05-17T21:59:34.867 回答
0
这可能对您有用:
{script; report} &
disown -h
或者,使其有条件:
{script && report} &
disown -h
你甚至可以这样做:
{script && report || fail} &
disown -h
于 2012-05-18T01:27:03.707 回答
0
在函数中启动您的工作,并在后台启动该函数。
task1plus () {
task1
whenFinished1
}
task2plus () {
task2
whenFinished2
}
task3plus () {
task3
whenFinished3
}
task1plus &
task2plus &
task3plus &
于 2012-05-17T23:29:16.677 回答