大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Linux kill 命令用于终止进程,其用法步骤如下:
创新互联建站专业为企业提供宝安网站建设、宝安做网站、宝安网站设计、宝安网站制作等企业网站建设、网页设计与制作、宝安企业网站模板建站服务,十余年宝安做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
需要准备的材料分别是:电脑、linux连接工具。
1、首先连接上linux主机,进入命令行状态。
2、输入:ps -ef,按回车,查询进程列表。
3、选择需要终止的进程,例如PID为9977的进程,则命令行输入:kill 9977,按回车即可终止该进程。
杀死进程需要找到进程的pid
kill -9 进程pid立刻杀死进程
kill -15 进程pid等进程执行完再杀死
你知道进程占用的端口号,比如nginx是80端口,可以lsof -i:80,注意空格,-i:前面一个空格,后面没空格直接写端口号
你知道进程名字,比如nginx,ps -ef | grep nginx 找到pid号杀掉
killalll nginx系统有这个进程会全部杀掉,如果找不到会有提示
通常用第一个,有时候不知道端口用第二个,第三个不怎么用
用ps查看进程
-e 显示所有进程。
-f 全格式。
-h 不显示标题。
-l 长格式。
-w 宽输出。
a 显示终端上的所有进程,包括其他用户的进程。
r 只显示正在运行的进程。
x 显示没有控制终端的进程。
一般用ps aux |grep 进程名 搜索某个进程
杀死进程一般用kill 进程号
比如ps出来的某个进程如下所示
4948 ? Ss 0:00 xinetd -stayalive -pidfile /var/run/xinetd.pid
杀死该进程命令为kill 4948
如果要杀死一组进程用killall 进程组名
kill -9 PID —— 强制杀死一个进程。
1、kill -9 杀死后台运行的进程。
红色下划线:sleep 10000 —— 后台运行延时 10000 秒的命令,进程 ID 为1317。
黄色下划线:ps —— 列出 1317 sleep 命令的进程。
(PID:进程 ID、PGID:线程组 ID、SID:会话 ID、TTY:进程运行的终端,标识那个终端控制。(pts远程终端、tty系统终端)、TIME:进程运行的时间 和 CMD:命令的名称和参数)。
jobs -l —— 列出后台运行的命令,1317 sleep 命令正在后台运行。
蓝色下划线:kill -9 1317—— 杀死 1317 进程。
绿色方框:ps 查询进程,1317 sleep进程已经被杀死(Killed)。jobs -l 已经没有后台运行的1317 sleep 命令。
2、kill -9 终止挂起的进程。
红色下划线:执行 sleep 10000 后 ctrl + z 挂起。
黄色下划线:ps -j 查看进程,有 1342 sleep 的进程。jobs -l 查看后台,1342 sleep 的状态是 stopped 暂停状态。
蓝色下划线:kill -9 杀死 1342 进程。此时系统没有反馈信息。
绿色下划线:ps -j 查看进程,1342 sleep 已经被杀死(Killed)。jobs -l 查看后台,已经没有了 1342 sleep。
从实验上看:
1、后台命令运行时(Running),执行 kill -9 可以强杀进程。
2、挂起命令,处于暂停状态时(Stopped),执行 kill -9 后通过 ps 查询进程, 可以看到进程已经被杀死。jobs 也查不到有后台命令。(这里和 kill -2、kill -15 不一样。kill -2、kill -15 在挂起命令,处于暂停状态时(Stopped)时执行,通过 ps 还可以查询到进程,jobs 也可以查询到后台仍有处于暂停状态的命令。)
1.查进程 ps命令查找与进程相关的PID号:psa显示现行终端机下的所有程序,包括其他用户的程序。ps-A显示所有程序。psc列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。ps-e此参数的效果和指定"A"参数相同。pse列出程序时,显示每个程序所使用的环境变量。psf用ASCII字符显示树状结构,表达程序间的相互关系。ps-H显示树状结构,表示程序间的相互关系。ps-N显示所有的程序,除了执行ps指令终端机下的程序之外。pss采用程序信号的格式显示程序状况。psS列出程序时,包括已中断的子程序资料。ps-t终端机编号 指定终端机编号,并列出属于该终端机的程序的状况。psu以用户为主的格式来显示程序状况。psx显示所有程序,不以终端机来区分。 最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。psaux|grepprogram_filter_word,ps-ef|greptomcat 2.杀进程
Linux 系统中,进程就是一个程序的运行实例。它可能运行在前端(比如有交互的进程),也可能运行在后端(比如无交互或自动运行的进程)。它可能是一个父进程(运行期间创建了其他进程),也可能是一个子进程(由其他进程所创建)。
在 Linux 系统中,除 PID 为 0 的第一个 init 进程(或 systemd )外,其余进程都有父进程。进程也可以拥有自己的子进程。
你可以通过使用 pstree 命令 来查看进程的树型结构,你可以清晰的看到各个进程的“家族树”。
在 Linux 系统中,正常情况下,子进程死亡后其父进程会接收到通知进行一些例如释放内存之类的清理操作。但是,如果父进程未收到通知察觉子进程死亡,那么子进程就进入了“僵死”状态。
这就是僵死进程产生的原因。
僵尸进程并不可怕,少量的僵尸进程对系统影响并不大。但如果系统的内存已经所剩不多或者有太多的僵尸进程在耗掉内存,问题会变得糟糕。
同样,大部分 Linux 系统进程最大 PID 设置为 32768,如果过多僵尸进程导致其他重要任务没有 PID 可用,那么你的系统会发生崩溃。
特别当存在一个编码糟糕的程序开始大量产生僵尸进程的时候,这种情况经常发生。在这种情况下,我们就需要找到并杀死僵尸进程。
在linux系统中,进程有如下几种状态,它们随时可能处于以上状态中的一种:
我们可以在命令终端中通过 top命令 来查看系统进程和它的当前状态。
命令如下:
如上面截图中看到的,其中共有 250 个任务(进程),其中 1 个处在 “运行中running” 状态,248 个进程处于 “休眠sleep” 状态,还有一个处于 “僵尸zombie” 状态。
现在问题进入下一步,如何杀死 “僵尸” 进程?
僵尸进程对系统来说就是已经死亡的进程,那么如何杀掉一个已经死亡的进程呢?
方法很简单,我们只需要通过如下ps命令就可以列举僵尸进程,得到它们的进程 ID。
ps ux 命令输出的第 8 列显示了进程状态。上述命令将会打印所有处在 Z+ 状态(表示僵尸状态)的进程。
确认了进程 ID 后,我们可以得到它的父进程 ID:
你也可以将上述两个命令结合在一起,直接得到僵尸进程的 PID 及其父进程的 PID:
通过以上命令都可以找到僵尸进程,然后你就可以通过 kill命 令杀掉了。
或者通过如下命令查看僵尸进程:
该命令输出结果上你可以直接看出其父进程ID,这时候你直接使用kill命令杀掉即可。
再次运行 ps 命令或 top 命令,你可以验证僵尸进程是否已经被杀死。
通过本文你将认识 Linux 系统中的僵尸进程以及明白了其产生的主要原因。同时,你也能学会如何查找僵尸僵尸进程并杀掉僵尸进程。
当然你也可以自己别写脚本设置成定时运行任务自动来替你做这些工作。