相关疑难解决方法(0)

使用一个命令杀死多个正在运行的进程实例

假设我有任何进程(例如,vi)的一千个或更多实例正在运行。我如何在一次射击/一行命令/一个命令中将它们全部杀死?

process kill

97
推荐指数
5
解决办法
24万
查看次数

如何显示终端 shell 的进程树,包括子进程?

当从命令提示符启动脚本时,shell 将为该脚本生成一个子进程。我想ps在树形输出中展示终端级进程与其子进程之间的关系。
我怎样才能做到这一点?

到目前为止我尝试过的

文件: script.sh

#!/bin/bash

ps -f -p$1
Run Code Online (Sandbox Code Playgroud)

然后我从命令行调用脚本并传入终端 shell 的进程 ID:

$ ./script.sh $$
Run Code Online (Sandbox Code Playgroud)

我想要的是这样的

  • 顶级(终端)shell 进程
  • ./script.sh
  • ps命令本身的过程
#!/bin/bash

ps -f -p$1
Run Code Online (Sandbox Code Playgroud)

我得到的是:

  PID TTY      STAT   TIME COMMAND
14492 pts/24   Ss     0:00 -bash
Run Code Online (Sandbox Code Playgroud)

shell ps

51
推荐指数
3
解决办法
15万
查看次数

如何像 bash 一样暂停和恢复进程

此问题是以下问题的后续:如何暂停和恢复进程

我已经从 gnome-terminal 中的 bash 会话启动了 firefox。

进程树如下所示:

$ ps -e -o pid,ppid,cmd -H
 1828     1   gnome-terminal
26677  1828     bash
27980 26677       /bin/sh /usr/lib/firefox-3.6.15/firefox
27985 27980         /bin/sh /usr/lib/firefox-3.6.15/run-mozilla.sh /usr/lib/firefox-3.6.15/firefox-bin
27989 27985           /usr/lib/firefox-3.6.15/firefox-bin
28012 27989             /usr/lib/firefox-3.6.15/plugin-container /usr/lib/adobe-flashplugin/libflashplayer.so 27989 plugin true
Run Code Online (Sandbox Code Playgroud)

当我CTRL+Z使用 bash 时,它会暂停 Firefox。当我发出命令bg(或fg)时,它将恢复 Firefox。这正如预期的那样。

当我kill -s SIGTSTP 27980在另一个终端中发出命令时,它会[1]+ Stopped firefox在第一个终端中打印该行(就像我点击时一样CTRL+Z),但它不会挂起 firefox。我假设它只挂起 shell 脚本。

当我kill -s SIGTSTP 27989在另一个终端中发出命令(注意 PID)时,它会挂起 Firefox。第一终端没有注意到这一点。

bash 如何挂起整个进程树?它是否只是遍历树和 SIGTSTP 所有的孩子?

process signals job-control

14
推荐指数
1
解决办法
1万
查看次数

优雅地获取子进程列表

我想获得父进程为 $pid 的所有进程的列表。这是我想出的最简单的方法:

pstree -p $pid | tr "\n" " " |sed "s/[^0-9]/ /g" |sed "s/\s\s*/ /g"

是否有任何命令或任何更简单的方法来获取子进程列表?

谢谢!

process ps

14
推荐指数
1
解决办法
4万
查看次数

标签 统计

process ×3

ps ×2

job-control ×1

kill ×1

shell ×1

signals ×1