linux 杀进程

1. kill

作用:根据进程号杀死进程

用法: kill [信号代码] 进程ID

举例:

[root@localhost ~]# ps auxf |grep httpd


注意:kill -9 来强制终止退出

举例 [root@localhost ~]# ps aux |grep gaim


或者 [root@localhost ~]# pgrep -l gaim 5031 gaim

5031 gaim

[root@localhost ~]# kill -9 5031

特殊用法:

kill -STOP [pid]

发送SIGSTOP (17,19,23)停止一个进程,而并不消灭这个进程。

kill -CONT [pid]

发送SIGCONT (19,18,25)重新开始一个停止的进程。

kill -KILL [pid]

发送SIGKILL (9)强迫进程立即停止,并且不实施清理操作。

kill -9 -1

终止你拥有的全部进程。

2. killall

作用:通过程序的名字,直接杀死所有进程

用法:killall 正在运行的程序名

举例:

[root@localhost beinan]# pgrep -l gaim 2979 gaim

[root@localhost beinan]# killall gaim


注意:该命令可以使用 -9 参数来强制杀死进程

3. pkill

作用:通过程序的名字,直接杀死所有进程

用法:#pkill 正在运行的程序名

举例:

[root@localhost beinan]# pgrep -l gaim 2979 gaim

[root@localhost beinan]# pkill gaim


4. xkill

作用:杀死桌面图形界面的程序。

应用情形实例:firefox出现崩溃不能退出时,点鼠标就能杀死firefox 。

当xkill运行时出来和个人脑骨的图标,哪个图形程序崩溃一点就OK了。

如果您想终止xkill ,就按右键取消;

调用方法:

[root@localhost ~]# xkill

◆编者注:

KILLALL(Section: User (1)/Updated: 1999年9月7日)

-----------------------------------------------

NAME (名称)

killall - 以名字方式来杀死进程  

SYNOPSIS (总览)

killall [-egiqvw] [-signal] name ...

killall -l

killall -V  

DESCRIPTION (描述)

killall 发送一条信号给所有运行任意指定命令的进程. 如果没有指定信号名, 则发送SIGTERM.。

信号可以以名字 (如 -HUP ) 或者数字 (如 -1 ) 的方式指定. 信号 0 (检查进程是否存在)只能以数字方式指定。

如果命令名包括斜杠 (/), 那么执行该特定文件的进程将被杀掉, 这与进程名无关。

如果对于所列命令无进程可杀, 那么 killall 会返回非零值. 如果对于每条命令至少杀死了一个进程, killall 返回 0。Killall 进程决不会杀死自己 (但是可以杀死其它 killall 进程)。

OPTIONS (选项)

-e

对于很长的名字, 要求准确匹配. 如果一个命令名长于 15 个字符, 则可能不能用整个名字 (溢出了). 在这种情况下, killall 会杀死所有匹配名字前 15 个字符的所有进程. 有了 -e 选项,这样的记录将忽略. 如果同时指定了 -v 选项, killall 会针对每个忽略的记录打印一条消息。

-g

杀死属于该进程组的进程. kill 信号给每个组只发送一次, 即使同一进程组中包含多个进程。

-i

交互方式,在杀死进程之前征求确认信息。

-l

列出所有已知的信号名。

-q

如果没有进程杀死, 不会提出抱怨。

-v

报告信号是否成功发送。

-V

显示版本信息。

-w

等待所有杀的进程死去. killall 会每秒检查一次是否任何被杀的进程仍然存在, 仅当都死光后才返回. 注意: 如果信号被忽略或没有起作用, 或者进程停留在僵尸状态, killall 可能会永久等待。

FILES(相关文件)

/proc proc文件系统的存在位置。

KNOWN bugS (已知 BUGS)

以文件方式杀死只对那些在执行时一直打开的可执行文件起作用, 也即, 混杂的可执行文件不能够通过这种方式杀死。

要警告的是输入 killall name 可能不会在非 Linux 系统上产生预期的效果, 特别是特权用户执行时要小心。

在两次扫描的间隙, 如果进程消失了而被代之以一个有同样 PID 的新进程, killall -w 侦测不到。

### 使用 `kill` 命令终止 Linux 进程 #### 什么是 `kill` 命令? `kill` 是一种用于向指定进程发送信号的命令,在大多数情况下,它被用来终止运行中的进程。通过传递特定的信号参数给目标进程,可以实现多种功能,比如优雅退出、立即强制停止或其他自定义行为。 #### 基本语法 以下是 `kill` 的基本语法: ```bash kill [选项] PID... ``` 其中: - `[选项]` 表示可选的标志位或参数; - `PID...` 则表示要操作的一个或多个进程 ID 号。 #### 参数解释 常见的选项包括但不限于以下几个方面[^4]: | 选项 | 描述 | |------|-----| | `-l` 或者 `--list` | 显示所有可用信号名称列表;如果没有提供额外参数,则仅打印默认集的内容。| | `-s SIGNAL` 或者 `--signal=SIGNAL` | 发送指定类型的SIGNAL到相应的进程中去,默认值为SIGTERM(即编号15),该动作通常会请求正常结束程序执行流程而不保存数据状态等信息之前先清理资源再退出来减少副作用影响程度达到安全可靠的目的。| #### 实际案例分析 当遇到某些难以响应的应用软件卡住时,可以通过如下方式解决: ##### 查找目标进程ID (PID) 利用 `ps aux | grep process_name` 找出对应的 pid 编号[^2]: ```bash $ ps aux | grep firefox user 1234 0.7 3.8 987654 12345 ? Sl Jan01 12:34 /usr/lib/firefox/firefox ``` 这里假设 Firefox 浏览器占用的是 1234 号码作为其唯一识别符。 ##### 尝试标准关闭方法 尝试让应用程序自行处理 SIGTERM 请求并准备离开现场: ```bash $ kill 1234 ``` 如果上述步骤未能成功解决问题, 那么就需要采取更加强硬的态度了. ##### 强制中断过程 对于那些拒绝合作或者已经处于僵死状态下的实例来说, 我们应该毫不犹豫地祭出终极武器-SIGKILL(-9): ```bash $ kill -9 1234 ``` 注意! 此种做法可能会造成未预期的数据丢失风险,请谨慎行事! #### 总结 综上所述,`kill` 不仅仅是简单意义上的“杀戮”,而是能够灵活运用各种信号机制来进行精细化控制的强大工具之一。掌握好它的使用技巧将会极大地方便日常运维工作以及紧急情况下的快速恢复能力提升效率的同时也保障系统的稳定性与安全性[^3]. ```python import os pid = input("Enter the Process ID you want to terminate:") os.kill(int(pid), 9) # Forcefully terminates a given process by sending signal number '9' print(f"Process {pid} has been terminated.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值