SoniEx2 Asked: 2019-06-24 07:57:04 +0800 CST2019-06-24 07:57:04 +0800 CST 2019-06-24 07:57:04 +0800 CST 列出我可以杀死的所有进程,这样我就可以杀死它们 772 我需要弄清楚我可以作为我的用户(没有特权)杀死的所有进程,这样我就可以杀死它们。我怎么做?我只想尽我所能杀死一切。 kill ps 1 个回答 Voted Best Answer user1686 2019-06-24T08:10:02+08:002019-06-24T08:10:02+08:00 kill()系统调用接受 PID-1以指定“所有可能的进程”。 如果pid等于 -1,则sig被发送到调用进程有权向其发送信号的每个进程,进程 1 ( init ) 除外,但请参见下文。 [...] POSIX.1 要求 kill(-1, sig ) 将 sig 发送到调用进程可能向其发送信号的所有进程,但可能对于某些实现定义的系统进程除外。 从命令行,使用kill -TERM -1. (必须明确指定信号名称,否则“-1”将被误解为指定 SIGHUP 而不是指定进程 ID)。 枚举所有可终止进程: 找出特定于操作系统的方法来枚举所有存在的进程。没有用于执行此操作的 POSIX 标准 C API。 对于每个进程 ID,发送信号0(仅用于权限检查的虚拟信号)。如果为零,则可以终止该进程;如果你得到-EPERM,你就不是。 请注意,这样做是为了随后杀死所有这些进程是浪费时间,因为您可以在知道 PID 后立即发送实际信号。(更不用说它依赖于进程枚举的非 POSIX 功能。)
kill()系统调用接受 PID
-1
以指定“所有可能的进程”。从命令行,使用
kill -TERM -1
. (必须明确指定信号名称,否则“-1”将被误解为指定 SIGHUP 而不是指定进程 ID)。枚举所有可终止进程:
0
(仅用于权限检查的虚拟信号)。如果为零,则可以终止该进程;如果你得到-EPERM,你就不是。请注意,这样做是为了随后杀死所有这些进程是浪费时间,因为您可以在知道 PID 后立即发送实际信号。(更不用说它依赖于进程枚举的非 POSIX 功能。)