Linux skill命令教程:如何发送信号或报告进程状态(附实例详解和注意事项)

Linux skill命令介绍

skill命令是用来发送信号或报告进程状态的。这个命令的默认信号是TERM。然而,这个命令已经被认为是过时和不可移植的,其命令语法定义得很差。建议使用killallpkill,和pgrep命令代替。

Linux skill命令适用的Linux版本

skill命令在大多数Linux发行版中都可以使用,包括Debian、Ubuntu、Alpine、Arch Linux、Kali Linux、RedHat/CentOS、Fedora和Raspbian。如果在某些Linux发行版中无法使用,可以尝试安装procpsprocps-ng包来获取这个命令。

[linux@bashcommandnotfound.cn ~]$ sudo apt-get install procps  # Debian/Ubuntu
[linux@bashcommandnotfound.cn ~]$ sudo yum install procps-ng  # RedHat/CentOS7
[linux@bashcommandnotfound.cn ~]$ sudo dnf install procps-ng  # RedHat/CentOS8/Fedora
[linux@bashcommandnotfound.cn ~]$ sudo apk add procps  # Alpine
[linux@bashcommandnotfound.cn ~]$ sudo pacman -S procps-ng  # Arch Linux/Manjaro

Linux skill命令的基本语法

skill [signal] [options] expression

Linux skill命令的常用选项或参数说明

选项说明
-f, --fast快速模式。这个选项尚未实现
-i, --interactive交互式使用。你将被要求批准每个操作
-l, --list列出所有信号名称
-L, --table以表格形式列出所有信号名称
-n, --no-action不执行任何操作;模拟会发生的事件,但实际上不会改变系统
-v, --verbose详细模式;解释正在做什么
-w, --warnings启用警告。这个选项尚未实现
-h, --help显示帮助文本并退出
-V, --version显示版本信息

Linux skill命令实例详解

实例1:发送TERM信号

[linux@bashcommandnotfound.cn ~]$ skill -v -t pts/3

这个命令会向pts/3终端上的所有进程发送TERM信号,结束这些进程。-v选项使命令在执行时提供详细的输出。

实例2:以交互方式发送信号

[linux@bashcommandnotfound.cn ~]$ skill -i -KILL -u username

这个命令会向用户名为username的用户的所有进程发送KILL信号,结束这些进程。-i选项使命令在发送信号前询问用户是否确认。

实例3:发送STOP信号

[linux@bashcommandnotfound.cn ~]$ skill -STOP -t pts/3

这个命令会向pts/3终端上的所有进程发送STOP信号,暂停这些进程。

实例4:发送CONT信号

[linux@bashcommandnotfound.cn ~]$ skill -CONT -t pts/3

这个命令会向pts/3终端上的所有进程发送CONT信号,恢复这些进程的运行。

实例5:以交互方式发送信号到指定进程

[linux@bashcommandnotfound.cn ~]$ skill -i -KILL -p 12345

这个命令会向进程ID为12345的进程发送KILL信号,结束这个进程。-i选项使命令在发送信号前询问用户是否确认。

实例6:发送信号到指定用户和终端的进程

[linux@bashcommandnotfound.cn ~]$ skill -KILL -u username -t pts/3

这个命令会向用户名为username的用户在pts/3终端上的所有进程发送KILL信号,结束这些进程。

实例7:发送信号到指定组的进程

[linux@bashcommandnotfound.cn ~]$ skill -KILL -g groupname

这个命令会向组名为groupname的组的所有进程发送KILL信号,结束这些进程。

实例8:发送信号到指定会话的进程

[linux@bashcommandnotfound.cn ~]$ skill -KILL -s sessionid

这个命令会向会话ID为sessionid的会话的所有进程发送KILL信号,结束这些进程。

实例9:发送信号到指定进程组的进程

[linux@bashcommandnotfound.cn ~]$ skill -KILL -P processgroupid

这个命令会向进程组ID为processgroupid的进程组的所有进程发送KILL信号,结束这些进程。

实例10:发送信号到指定父进程的子进程

[linux@bashcommandnotfound.cn ~]$ skill -KILL -pp parentprocessid

这个命令会向父进程ID为parentprocessid的父进程的所有子进程发送KILL信号,结束这些进程。

实例11:发送信号到指定终端的进程

[linux@bashcommandnotfound.cn ~]$ skill -KILL -t pts/3

这个命令会向pts/3终端上的所有进程发送KILL信号,结束这些进程。

实例12:发送信号到指定用户的进程

[linux@bashcommandnotfound.cn ~]$ skill -KILL -u username

这个命令会向用户名为username的用户的所有进程发送KILL信号,结束这些进程。

实例13:发送信号到指定进程

[linux@bashcommandnotfound.cn ~]$ skill -KILL -p processid

这个命令会向进程ID为processid的进程发送KILL信号,结束这个进程。

实例14:发送信号到指定进程名的进程

[linux@bashcommandnotfound.cn ~]$ skill -KILL processname

这个命令会向进程名为processname的所有进程发送KILL信号,结束这些进程。

实例15:发送信号到指定进程名和用户的进程

[linux@bashcommandnotfound.cn ~]$ skill -KILL processname username

这个命令会向进程名为processname且用户名为username的用户的所有进程发送KILL信号,结束这些进程。如果进程名和用户名的顺序颠倒,命令的效果是一样的。

Linux skill命令的注意事项

  • skill命令已经被认为是过时和不可移植的,建议使用killallpkill,和pgrep命令代替。
  • 如果在使用skill命令时遇到bash: skill: command not found错误,可以尝试安装procpsprocps-ng包来获取这个命令。

Linux skill相关命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值