如何终止Linux中的进程 kill和killall命令使用指南

2 02 2 年,我在一个城市,遇到了一个难题。
一个进程被阻塞,系统几乎瘫痪。
我很困惑,不知道该怎么办。
我当时的想法是用命令行,用kill命令,但是不知道PID,于是用ps命令查看,ps -aux|grep进程名,然后看到了PID,就是那个数字,然后用kill命令输入PID,但是进程没有响应,心里有点着急。
后来我才意识到,也许我太极端了。
首先我应该尝试kill-1 5 ,这是SIGTERM信号,要求进程正常终止,以便进程有机会清理资源。
但是,如果该进程仍然没有响应,那么我必须使用kill-9 来强制终止它。
当时我很困惑,不知道还有其他信号可以使用,比如 SIGHUP、SIGINT、SIGSTOP 和 SIGCONT。
这些信号对于某些进程可能有用。
后来我还了解到,不建议使用kill-9 ,因为它会直接杀死进程,而不给进程任何清理资源的机会,这可能会导致数据丢失或文件损坏。
我还学会了如何避免意外杀死进程。
请务必确认PID或进程名称正确。
特别是使用killall时,进程名一定要正确。
还学会了如何使用脚本批量杀死进程,效率更高。
至于僵尸进程,我了解到它是一个已经终止的进程,但是父进程还没有回收其资源。
解决办法是修复父进程的故障或者重启父进程。
这个过程让我对Linux进程管理有了更深入的了解。

linux怎么停止进程

嗯...在 Linux 中...要停止进程...有两种基本方法。

第一种方法...是使用PID...这个...
首先找到PID...使用这个命令... ps -ef | grep <进程名称>...例如...如果您想查找 Firefox...只需键入 ps -ef | grep Firefox...看看输出...像这样...
用户 2 1 3 7 1 2 3 4 5 0 1 0:00? 00:00:01 /usr/lib/firefox/firefox
你看到这个2 1 3 7 了吗?这是PID...写下来...
然后...杀掉进程...就用kill -9 ...这个-9 ...是SIGKILL...很难杀...直接结束...比如kill -9 2 1 3 7 ...
第二种方法...通过进程名...
先确认进程名...或者用ps -ef | grep <进程名>...看看...如Firefox...
然后...杀死所有与该名称匹配的进程...只需使用killall <进程名>...例如killall Firefox...这...杀死所有同名进程...
注意...killall...只杀死同名进程...它不会影响进程组中的其他进程...
还有一些需要注意...
kill -9 ...这个很难kill...SIGKILL...不能 该进程有...并丢弃...但是...它可能无法释放资源...比如临时文件...所以...一般...尝试先杀死-1 5 ...这是SIGTERM...这是一个简单的请求...让进程打包并离开...例如kill -1 5 2 1 3 7 ...
如果...进程不听话...无响应...简化的请求不起作用...然后...尝试更多...使用kill -9 ...
如果...它仍然不动...你可以尝试...退出整个进程组...你必须先查看PGID...使用ps -ejH...找到PGID...然后kill -9 -...
权限...普通用户...只能杀死自己的进程...停止系统服务...或其他人的进程...你必须使用sudo...如sudo Kill -9 2 1 3 7 ...
示例...
通过PID停止Firefox...首先注意-ef | grep Firefox...找到PID...如2 1 3 7 ...然后kill -9 2 1 3 7 ...
要按名称停止所有Firefox...只需杀死所有Firefox...
还有其他工具...
pkill...还支持按名称正则表达式...例如pkill -f "firefox"...可以在命令行上杀死Firefox...
htop...是一个交互式工具...您可以单击...直接发送信号...例如按F9 ...选择信号类型...
就这样...你可以根据情况选择...先软后硬...一般先用SIGTERM...如果不行...然后SIGKILL...