终端 - 关闭所有终端窗口/进程

时间:2018-06-17 18:32:59

标签: bash macos shell command-line terminal

我有几个基于cli的脚本运行了一段时间。

我想要另一个脚本来重启'那些其他的脚本。

我已经检查了SO的答案,但这些方案不适用于我的,因为我试图使用终端来终止终端进程。

过程:

  1. 正在运行2个基于cli的脚本(node,python等)。
  2. 运行第3个脚本并决定是否重新启动其他2。 这不能退出终端,但必须结束当前流程。
  3. 然后第三个脚本运行一个可重启所有内容的可执行文件。
  4. 目前没有一个终端窗口被命名,通过阅读其他帖子,我可以看到这样做可能会有所帮助。

    我几乎可以设置它,我找不到一个可以结束所有其他终端进程并关闭它们的命令。

2 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点。最常见的是有一个pidfile。 此文件包含要杀死的作业的进程ID(pid) 稍后的。创建pidfile的一种简单方法是:

$ node server &
$ echo $! > /tmp/node.pidfile

$!包含最近落后的流程的pid。

然后,你会这样杀死它:

$ kill `cat /tmp/node.pidfile`

你会对python脚本做类似的事情。

另一种不太健壮的方法是为每个流程执行killall,并假设您没有运行类似的nodepython个工作。

参考 What is a .pid file and what does it contain?如果您对此不熟悉。

答案 1 :(得分:0)

问题标题很笼统,我的答复也是如此 killall bash

或一般而言 killall processName

例如killall chrome