问题标签 [pstree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
17 浏览

bash - 有没有可以用来提取 PID 并将它们放在以空格分隔的列表中的命令或编程方式?

极客,我寻求你的帮助。

在我的 bash 脚本中,我需要杀死一个进程及其所有子进程 - 因此,给定一个父 pid(在本例中为 2288),我需要使用该父 pid 来查找子 PID,将它们放入列表中然后杀死它们. 下面的代码我试过了……</p>

…但它的输出在字母字符中嵌入了子 PID,如下所示…</p>

有没有可以用来提取 PID 并将它们放在空格分隔的列表中的命令或编程方式?

请注意,目前我正在使用...</p>

(1)

...将父级及其子级的 PID 放入以空格分隔的列表中,然后杀死它们。我想放弃这一点,因为确实有可能意外杀死名称可能与进程的部分名称匹配的其他进程,并且,

(2)

我尝试了各种其他建议的技术,例如使用 awk 'printf $1' 等的正则表达式,以从 pstree 或 ps 的输出中提取 PID,但这些建议中的大多数仅适用于命令行,在脚本中运行时会失败. 如果某个地方的某些极客可以帮助使用一种简单的技术来提取给定父 pid 的子 PID,并将它们放入以空格分隔的列表中,我将非常感激并提前感谢。(我的脚本在 Centos 上的 bash 中)