我当前正在运行任务/进程。我希望安排另一项任务在第一项完成时开始。
我怎么能在linux中做到这一点?
(我无法阻止第一个,并创建一个脚本以便在另一个之后启动一个任务)
答案 0 :(得分:2)
有点微不足道的规范,但是
的内容watch -n 1 'pgrep task1 || task2'
可能会完成这项工作。
答案 1 :(得分:0)
您希望等待。
本手册第2部分中的系统调用,其中一个变量如waitpid
或shell内置,为此目的明确设计。
shell内置更自然,因为这两个进程都是出售的孩子,所以你写了一个脚本:
#!/bin/sh
command1 arguments &
wait
command2 args
要使用系统调用,您必须编写一个程序,该程序会在执行第二个程序之前在子项中启动第一个命令然后wait
。
wait (2)
的联机帮助页说:
wait()和waitpid()
wait()系统调用暂停当前进程的执行,直到其子进程终止。呼叫等待(& status)等同于:waitpid(-1, &status, 0);
waitpid()系统调用暂停执行当前进程直到子进程 由pid参数指定的状态已经改变。