skill
命令是用来发送信号或报告进程状态的。这个命令的默认信号是TERM。然而,这个命令已经被认为是过时和不可移植的,其命令语法定义得很差。建议使用killall
,pkill
,和pgrep
命令代替。
skill
命令在大多数Linux发行版中都可以使用,包括Debian、Ubuntu、Alpine、Arch Linux、Kali Linux、RedHat/CentOS、Fedora和Raspbian。如果在某些Linux发行版中无法使用,可以尝试安装procps
或procps-ng
包来获取这个命令。
[[email protected] ~]$ sudo apt-get install procps # Debian/Ubuntu
[[email protected] ~]$ sudo yum install procps-ng # RedHat/CentOS7
[[email protected] ~]$ sudo dnf install procps-ng # RedHat/CentOS8/Fedora
[[email protected] ~]$ sudo apk add procps # Alpine
[[email protected] ~]$ sudo pacman -S procps-ng # Arch Linux/Manjaro
skill [signal] [options] expression
选项 | 说明 |
---|---|
-f, --fast | 快速模式。这个选项尚未实现 |
-i, --interactive | 交互式使用。你将被要求批准每个操作 |
-l, --list | 列出所有信号名称 |
-L, --table | 以表格形式列出所有信号名称 |
-n, --no-action | 不执行任何操作;模拟会发生的事件,但实际上不会改变系统 |
-v, --verbose | 详细模式;解释正在做什么 |
-w, --warnings | 启用警告。这个选项尚未实现 |
-h, --help | 显示帮助文本并退出 |
-V, --version | 显示版本信息 |
[[email protected] ~]$ skill -v -t pts/3
这个命令会向pts/3
终端上的所有进程发送TERM信号,结束这些进程。-v
选项使命令在执行时提供详细的输出。
[[email protected] ~]$ skill -i -KILL -u username
这个命令会向用户名为username
的用户的所有进程发送KILL信号,结束这些进程。-i
选项使命令在发送信号前询问用户是否确认。
[[email protected] ~]$ skill -STOP -t pts/3
这个命令会向pts/3
终端上的所有进程发送STOP信号,暂停这些进程。
[[email protected] ~]$ skill -CONT -t pts/3
这个命令会向pts/3
终端上的所有进程发送CONT信号,恢复这些进程的运行。
[[email protected] ~]$ skill -i -KILL -p 12345
这个命令会向进程ID为12345
的进程发送KILL信号,结束这个进程。-i
选项使命令在发送信号前询问用户是否确认。
[[email protected] ~]$ skill -KILL -u username -t pts/3
这个命令会向用户名为username
的用户在pts/3
终端上的所有进程发送KILL信号,结束这些进程。
[[email protected] ~]$ skill -KILL -g groupname
这个命令会向组名为groupname
的组的所有进程发送KILL信号,结束这些进程。
[[email protected] ~]$ skill -KILL -s sessionid
这个命令会向会话ID为sessionid
的会话的所有进程发送KILL信号,结束这些进程。
[[email protected] ~]$ skill -KILL -P processgroupid
这个命令会向进程组ID为processgroupid
的进程组的所有进程发送KILL信号,结束这些进程。
[[email protected] ~]$ skill -KILL -pp parentprocessid
这个命令会向父进程ID为parentprocessid
的父进程的所有子进程发送KILL信号,结束这些进程。
[[email protected] ~]$ skill -KILL -t pts/3
这个命令会向pts/3
终端上的所有进程发送KILL信号,结束这些进程。
[[email protected] ~]$ skill -KILL -u username
这个命令会向用户名为username
的用户的所有进程发送KILL信号,结束这些进程。
[[email protected] ~]$ skill -KILL -p processid
这个命令会向进程ID为processid
的进程发送KILL信号,结束这个进程。
[[email protected] ~]$ skill -KILL processname
这个命令会向进程名为processname
的所有进程发送KILL信号,结束这些进程。
[[email protected] ~]$ skill -KILL processname username
这个命令会向进程名为processname
且用户名为username
的用户的所有进程发送KILL信号,结束这些进程。如果进程名和用户名的顺序颠倒,命令的效果是一样的。
skill
命令已经被认为是过时和不可移植的,建议使用killall
,pkill
,和pgrep
命令代替。skill
命令时遇到bash: skill: command not found
错误,可以尝试安装procps
或procps-ng
包来获取这个命令。