shell A 中调用另一个 shell B 脚本,怎么一起杀死?
我发现, 根据 shell A 的进程ID, kill 掉后, shell B 还会继续运行着.
有什么优雅的方式, 一次kill掉这种调用关系的shell呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我发现, 根据 shell A 的进程ID, kill 掉后, shell B 还会继续运行着.
有什么优雅的方式, 一次kill掉这种调用关系的shell呢?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
在启动一个脚本时,把pid记录到一个文件
杀进程时,根据记录的pid kill
如何杀死父子进程
脚本层级调用的场景中, 传统的根据pid的方式kill, 若只是kill主脚本的进程, 所有里面调用的子脚本不会被kill. 除非获取所有子进程id, 逐个kill, 但是手动做这些, 那又累, 而且容易遗漏, 造成未知后果.
靠谱解决方案:
先学习下
pstree
,awk
.调用层级: a.sh -> b.sh -> c.sh
上面第二行指令改进后:
输出:
这就是拿到了主进程及其所有子进程pid了.
使用_kill_拿到的所有pid, 就可以一次性kill了
或: