oct*_*pus 3 bash kill parent-child
执行命令然后在一段时间后杀死命令的最佳方法是什么?这就是我所拥有的; 它完成了这项工作,但是我得到了amp: command not found,虽然我不知道为什么放大器在那里,但我知道如果没有放大器,杀戮就行不通.
feh "$output""$ext" &
echo $!
sleep 1
kill -s 9 $!
exit 1
Run Code Online (Sandbox Code Playgroud)
问题是我不知道我正在执行的进程的PID.我可以在执行时指定一个吗?
GNU超时是coreutils最新版本的一部分,它完全符合您的要求.
timeout 1 feh "$output""$ext"
Run Code Online (Sandbox Code Playgroud)
运行feh一秒然后杀死它,如果它还没有结束.
本评论的其余部分涉及您当前的食谱:
您当前使用的食谱feh使用&.在amp;以后这是一个错误,可能从一些过分热心的HTML编码器(&是你如何拼写&的HTML).
启动时,内核会为每个进程分配一个PID.$!是最近后台进程的pid的shell变量.