我现在有一个看起来像这样的脚本。
问题是,如果这个脚本被杀死了,mplayer进程仍然存在。我想知道如何使得杀死脚本也能同时杀死mplayer。
我不能使用
# code
mplayer "$vid"
# more code
问题是,如果这个脚本被杀死了,mplayer进程仍然存在。我想知道如何使得杀死脚本也能同时杀死mplayer。
我不能使用
exec
,因为我需要在mplayer之后运行命令。exec mplayer "$vid"
我所能想到的唯一解决办法是在后台中生成它,并手动等待其完成。这样,我可以获得它的PID,并在脚本被停止时杀死它,但并不是最优雅的方法。我想知道实现这个的“正确”或最佳方式是什么。
fork
创建子进程,并在exec
之前要求子进程接收父进程的死亡信号。我还删除了名称混淆,因为它对于不在路径或当前目录中的文件会出错。 - Kevin Coxprun mplayer ...
而不是mplayer ...
。好的,那就很好了。也许你应该把答案改成使用mplayer
而不是foo.sh
,因为mplayer
是问题中使用的示例。这将有助于使它更清晰。 - Kevin Coxkillcatch 15 myscript.sh
。 - Kevin Cox