Linux基础命令kill详解

kill 是一个在 Unix 和类 Unix 操作系统(如 Linux)中使用的命令,用于向进程发送信号,通常用于终止进程。以下是 kill 命令的详细参数说明及示例。

基本语法

kill [选项] <pid>... 
  • pid: 要发送信号的进程的进程ID(Process ID)。

常用选项与信号

1. 默认信号 SIGTERM (15)

默认情况下,kill 命令发送 SIGTERM 信号,要求进程正常终止。

kill <pid> 
2. -s 或 --signal

指定要发送的信号。使用信号名称或数值。例如,要发送 SIGKILL 信号(强制终止进程):

kill -s SIGKILL <pid> # 或者使用信号编号 kill -9 <pid> 

kill -9 无论进程当前正在执行什么操作,操作系统会立即终止该进程。

不允许进程做任何清理工作,所以可能会导致数据丢失或资源未释放

在处理未响应或冻结的进程时可使用此命令,但应谨慎使用

3. -l 或 --list

列出所有可用信号及其对应编号。

kill -l 
4. -n 或 --signal

后面接信号编号,向指定的进程发送。

kill -n 9 <pid> 
5. -p

仅显示指定的进程的PID,使用此选项并不会发送信号。

kill -p <pid> 
6. -q

不显示错误信息。

kill -q <pid> 

常用信号

  • SIGTERM (15): 请求进程终止,允许清理资源。
  • SIGKILL (9): 强制杀死进程,无法被捕获或忽略。
  • SIGINT (2): 中断进程,通常可以通过 Ctrl+C 发送。
  • SIGHUP (1): 通知进程其控制终端已关闭。
  • SIGSTOP (19): 暂停进程,无法被捕获或忽略。
  • SIGCONT (18): 恢复被停止的进程。

示例

  1. 正常终止进程

    终止进程ID为 1234 的进程,使用默认 SIGTERM 信号:

    kill 1234 
  2. 强制终止进程

    强制终止进程ID为 1234 的进程,使用 SIGKILL 信号:

    kill -9 1234 
  3. 发送不同的信号

    假设你想给进程ID为 1234 的进程发送 SIGHUP 信号:

    kill -s SIGHUP 1234 
  4. 列出所有信号

    列出所有信号的名称和编号:

    kill -l 
  5. 使用信号编号杀死进程

    如下命令发送 SIGINT 信号,通常用于中断进程:

    kill -2 1234 
  6. 优雅地关闭所有子进程

    使用 pkill 或 killall 关闭特定的应用程序。例如,终止所有 firefox 进程:

    killall firefox 

注意事项

  • 使用 SIGKILL 信号会强制终止进程,进程无法进行清理。通常建议优先使用 SIGTERM
  • 有些进程可能会捕获特定信号并采取相应措施(如清理工作),因此依据情况选择信号类型。
  • 确保你有适当的权限去终止目标进程,某些系统进程可能需要 root 权限。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

penny_tcf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值