十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
root 3843 3598 0 00:08 pts/0 00:00:00 grep --color=auto fcitx
乐亭ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
1.作用
kill命令用来中止一个进程。
2.格式
kill [ -s signal | -p ] [ -a ] pid …
kill -l [ signal ]
3.参数
-s:指定发送的信号。
-p:模拟发送信号。
-l:指定信号的名称列表。
pid:要中止进程的ID号。
Signal:表示信号。
4.说明
进程是Linux系统中一个非常重要的概念。Linux是一个多任务的操作系统,系统上经常同时运行着多个进程。我们不关心这些进程究竟是如何分配的,或 者是内核如何管理分配时间片的,所关心的是如何去控制这些进程,让它们能够很好地为用户服务。
Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。交互进程是由一个Shell启动的进程。交互进程既可以在前台运行,也 可以在后台运行。批处理进程和终端没有联系,是一个进程序列。监控进程(也称系统守护进程)时Linux系统启动时启动的进程,并在后台运行。例 如,httpd是著名的Apache服务器的监控进程。
kill命令的工作原理是,向Linux系统的内核发送一个系统操作信号和某个程序的进程标识号,然后系统内核就可以对进程标识号指定的进程进行操 作。比如在top命令中,我们看到系统运行许多进程,有时就需要使用kill中止某些进程来提高系统资源。系统多个虚拟控制台的作用是当一个程序出错造成 系统死锁时,可以切换到其它虚拟控制台工作关闭这个程序。此时使用的命令就是kill,因为kill是大多数Shell内部命令可以直接调用的。
5.应用实例
(1)强行中止(经常使用杀掉)一个进程标识号为324的进程:
#kill -9 324
(2)解除Linux系统的死锁
在Linux中有时会发生这样一种情况:一个程序崩溃,并且处于死锁的状态。此时一般不用重新启动计算机, 只需要中止(或者说是关闭)这个有问题的程序即 可。当kill处于X-Window界面时,主要的程序(除了崩溃的程序之外)一般都已经正常启动了。此时打开一个终端,在那里中止有问题的程序。比如, 如果Mozilla浏览器程序出现了锁死的情况,可以使用kill命令来中止所有包含有Mozolla浏览器的程序。首先用top命令查处该程序的 PID,然后使用kill命令停止这个程序:
#kill -SIGKILL XXX
其中,XXX是包含有Mozolla浏览器的程序的进程标识号。
(3)使用命令回收内存
我们知道内存对于系统是非常重要的,回收内存可以提高系统资源。kill命令可以及时地中止一些“越轨”的程序或很长时间没有相应的程序。例如,使用 top命令发现一个无用 (Zombie) 的进程,此时可以使用下面命令:
#kill -9 XXX
其中,XXX是无用的进程标识号。
然后使用下面命令:
#free
此时会发现可用内存容量增加了。
(4)killall命令
Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:
# killall -HUP inetd
*杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志。
首先使用ps -ef命令确定要杀死进程的PID,然后输入以下命令:
# kill -pid
注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在 运行,因此仍消耗资源。为了防止这些所谓的“僵尸进程”,应确保在杀死父进程之前,先杀死其所有的子进程。
——————————————————————————–
*确定要杀死进程的PID或PPID
# ps -ef | grep httpd
——————————————————————————–
*以优雅的方式结束进程
# kill -l PID
-l选项告诉kill命令用好像启动进程的用户已注销的方式结束进程。当使用该选项时,kill命令也试图杀死所留下的子进程。但这个命令也不是总 能成功–或许仍然需要先手工杀死子进程,然后再杀死父进程。
——————————————————————————–
*TERM信号
给父进程发送一个TERM信号,试图杀死它和它的子进程。
# kill -TERM PPID
——————————————————————————–
*killall命令
killall命令杀死同一进程组内的所有进程。其允许指定要终止的进程的名称,而非PID。
# killall httpd
——————————————————————————–
*停止和重启进程
有时候只想简单的停止和重启进程。如下:
# kill -HUP PID
该命令让Linux和缓的执行进程关闭,然后立即重启。在配置应用程序的时候,这个命令很方便,在对配置文件修改后需要重启进程时就可以执行此命 令。
——————————————————————————–
*绝杀 kill -9 PID
同意的 kill -s SIGKILL
这个强大和危险的命令迫使进程在运行时突然终止,进程在结束后不能自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无 效。
当使用此命令时,一定要通过ps -ef确认没有剩下任何僵尸进程。只能通过终止父进程来消除僵尸进程。如果僵尸进程被init收养,问题就比较严重了。杀死init进程意味着关闭系统。
如果系统中有僵尸进程,并且其父进程是init,而且僵尸进程占用了大量的系统资源,那么就需要在某个时候重启机器以清除进程表了。
Trackback:
需要解决更多linux问题,详情请看
望采纳
可以。linux哪个组合可以断开长命令,中断linux命令快捷键:
1、Tab这是不能没有的Linux快捷方式。将节省Linux命令行中的大量时间。
2、Ctrl+C这个组合能在终端上中断命令或进程。按下它将立即停止正在运行的程序。如果要停止使用在前台运行的程序,只需按此组合键即可。
3、Ctrl+Z此快捷方式将在后台发送正在运行的程序。
具体要看你实现什么功能,比如要在终端下查看文档xxx.txt,这个文档操作1000行,终端不能同时显示这么多行,你可以通过组合命令让终端在你的控制下逐行显示:
cat xxx.txt | less
叹号命令使用
双叹号!!
!!代表上一条输入的命令,可以和其他命令组合起来构成新的命令
eg:
$ ./startup.sh
$ cat !!
复制
此命令相当于 cat ./startup.sh,省去了来回切换
!$
代表得是上一条命令中最后一个参数
eg:
$ ls /usr/local/dic
$ cat !$/a.txt
复制
如果上一个路径是一个很长的,就会很省事的
!字符串
代表最近一条以指定字符串开头的命令
eg:
$ !ssh
复制
执行最近一次ssh命令
!?字符串?
类似于mysql的模糊匹配,执行最近一条命令中包含指定字符串的命令
eg:
$ !?ssh?
复制
执行最近的一次包含ssh的命令
!n 或 !-n
此命令通常配合history命令使用
使用history查找ssh记录
eg:
$ !109
复制
执行history查询出来前面序号为109的命令
$ !-1
复制
执行当前命令序号减去一得到的序号对应的命令