标签: pkill

如何在Centos 7上杀死`user`拥有的所有进程?

我在在线闪存卡中读到命令是:

pkill -u bob $(pgrep -u bob)
Run Code Online (Sandbox Code Playgroud)

然而,我认为这是错误的。我认为它在说:

杀死所有拥有的处理bob,和4572\n4600

因为:

[bob@localhost ~]$ pgrep -u bob
4572
4600
Run Code Online (Sandbox Code Playgroud)

此外,它给出了一个错误:

[bob@localhost ~]$ pkill -u bob $(pgrep -u bob)
pkill: only one pattern can be provided
Try `pkill --help' for more information.
Run Code Online (Sandbox Code Playgroud)

这是有道理的,因为您不能在用户名中使用换行符,对吗?

我认为命令应该只是:

pkill -u bob
Run Code Online (Sandbox Code Playgroud)

“杀死鲍勃拥有的所有进程”

而命令:

pgreg -u bob 
Run Code Online (Sandbox Code Playgroud)

给出“bob 拥有的所有进程”

我很好奇:

  • 我是否按预期使用了正确的命令?
  • 我对错误方式的分析准确吗?

process process-management pkill

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

有没有一种干净的方法来处理 sudo pkill 进程而不包括 sudo 进程?

我需要杀死一些作为 sudo 运行的进程,按全名匹配它们,并计算原始命令调用的次数。

对于每个进程,有两个进程:命令本身和sudo一个,但我可以解决这个问题:

$ sudo -b perf record sleep 100

$ pgrep -fa '/perf record'
2245700 /usr/lib/linux-tools/.../perf record sleep 100
Run Code Online (Sandbox Code Playgroud)

问题是,当我调用时sudo pkill,它会找到、杀死并计算自己:

$ sudo pkill -ef '/perf record' | wc -l
2
Run Code Online (Sandbox Code Playgroud)

在这种情况下,是否有一种简单的方法让 pkill 不包含自身?

我试过使用 pid 文件,这可能是可以接受的,但是缺少 pgrep/pkill 文档,而且它似乎不能以基本形式工作:

$ pgrep -f '/perf record' | tee /tmp/pids
$ sudo pkill -F /tmp/pids
 killed (pid 2249211)
Run Code Online (Sandbox Code Playgroud)

因为它只会杀死第一个。文档说:

       -F, --pidfile file
              Read PID's from file.  This option is perhaps more useful for pkill than pgrep.
Run Code Online (Sandbox Code Playgroud)

但它的含义是模棱两可的 …

kill pkill

6
推荐指数
2
解决办法
1293
查看次数

如何在另一个脚本中停止一个脚本

我正在使用终端模拟器运行 Ubuntu 16.04。

我有两个脚本:a.shb.sh.? a.sh调用b.sh

a.sh

echo "a is running"
sleep 5s
bash b.sh
sleep 5s
echo "a is still running"
Run Code Online (Sandbox Code Playgroud)

b.sh

echo "b is now running"
sleep 1000s
echo "Bananas"
Run Code Online (Sandbox Code Playgroud)

有没有办法运行a.shb.sh在它完成之前停止(在它打印香蕉之前)并让a.sh运行完成并打印“a仍在运行”?

我试图把pkill -f b.sh里面a.sh,但两者a.shb.sh停止前a.sh完成。

kill shell-script pkill

5
推荐指数
2
解决办法
4172
查看次数

如何向 cgroup 中的所有进程发送信号?

kill $(< /sys/fs/cgroup/freezer/<name>/tasks )可以工作,但看起来很笨拙,如果 cgroup 为空,则会产生警告,并且可能会达到命令行长度限制。

pkill -F不接受 cgroup 任务文件作为有效的 pid 文件。

好像没有类似的专用工具cgkill

我应该使用什么(除了像 LXC 这样的成熟容器之外)来使强制 cgroup 终止更加可靠和自记录?理想情况下,它还应该执行 { SIGTERM, then wait, then freeze, then SIGKILL, then thaw } 例程。

linux kill cgroups pkill

5
推荐指数
0
解决办法
1479
查看次数

如何强制PID终止?

是的,我已经尝试了谷歌搜索的所有基本方法kill,等等。 有时它有效,有时似乎有什么东西阻止进程终止。 命令失败时没有任何消息,但、等显示进程仍在运行。pkill

stderrkillpspgrep

有没有更有力的方法来做到这一点?谢谢。

process kill process-management pkill

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

删除/杀死一个不会死的进程

我正在使用 Linux Ubuntu 20.04。

我有一个 PID 为 21 的进程:

PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
21  root      20   0       0      0      0 S   0.0   0.0   0:00.01 kdevtmpfs
Run Code Online (Sandbox Code Playgroud)

运行任何一个后

  • sudo pkill -9 21
  • sudo kill 21

该过程在top或的输出中仍然可见ps aux

我怎样才能杀死它?

linux process kill pkill

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

为什么kill、killall和pkill的信号列表不一样?

我研究了killpkillkillall命令,并且了解了它们的大部分差异。然而,我对他们的信号感到困惑:

如果我运行kill -l,我会看到:

 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) …
Run Code Online (Sandbox Code Playgroud)

linux kill signals options pkill

4
推荐指数
2
解决办法
1692
查看次数

pkill 命令中的 -KILL 选项是什么

我找到了一种使用命令行注销任何用户的方法。通过执行命令pkill -KILL -u <username>,我现在可以从我进入的会话中注销。我的问题是,为什么在和 中都
没有关于-KILL可用开关或选项的描述。 我在用。预先非常感谢您。man pkillpkill --help
Ubuntu Mate 16.04

man pkill

0
推荐指数
1
解决办法
1897
查看次数