如何通过屏幕 window 中的 bash 文件终止所有任务 运行?

How do I kill all tasks run by a bash file in a screen window?

也许答案已经在那里了,但是在阅读了几个问题之后我没能做到我需要的。

我的情况: 我正在通过 ssh 使用一台机器。我创建了一个 screen window,我调用了一个 bash 文件,如下所示:

for var in 1..N
do
java -option $var
done

N非常高。

问题:有没有办法一次性杀死bash文件启动的所有java任务?或者杀死屏幕 window 并且屏幕中的所有内容都是 运行?

注意java 任务在运行 - 在screen 中- 在前台。如果我尝试做 CTRL-C,我当时只能终止一个 java 任务。

如果你不怕杀死任何 运行 java 进程,你可以做总是有用的 "killall -9 java" :)

  1. 找出屏幕会话的进程 ID。
  2. 使用此 pid 号杀死屏幕及其所有子进程

例如:

screen 置于后台 (Ctrl-Alt + D)

列出您打开的屏幕会话:

screen -ls

你会得到类似的东西:

There is a screen on:
    2222.pts-3.yourmachine    (Detached)

第一个数字是屏幕会话的进程 ID。

使用这个数字杀死屏幕及其所有子元素:

PID=2222
kill $PID

如果您的 java 应用程序捕获了一些信号,请使用不太优雅的方式来终止它们,例如kill -9 $PID