skd*_*skd 57 linux bash process
所以我有一个进程在运行,需要几个小时才能完成.我希望自动完成另一个过程.请注意,我无法在第一个脚本中添加对第二个脚本的调用,也不会创建另一个顺序运行它们的脚本.在Linux中有什么办法吗?
编辑:一个选项是x
使用pgrep 每分钟轮询并检查过程是否完成.如果是,请启动另一个.但是,我不喜欢这个解决方案.
PS:两者都是bash脚本,如果有帮助的话.
thi*_*ton 59
给定第一个进程的PID,循环
while ps -p $PID; do sleep 1; done ; script2
Run Code Online (Sandbox Code Playgroud)
应该做的伎俩.这比pgrep和进程名称稍微稳定一些.
小智 34
也许你可以先按ctrl + z然后输入
fg; echo "first job finished"
Run Code Online (Sandbox Code Playgroud)
Sor*_*gal 29
轮询可能是要走的路,但它不一定非常可怕.
pid=$(ps -opid= -C your_script_name)
while [ -d /proc/$pid ] ; do
sleep 1
done && ./your_other_script
Run Code Online (Sandbox Code Playgroud)