博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
kill 和killall----杀死进程
阅读量:4286 次
发布时间:2019-05-27

本文共 1331 字,大约阅读时间需要 4 分钟。

1、根据进程ip查看进程名

Liunx中 通过进程名查找进程PID可以通过 pidof  [进程名] 来查找。

反过来 ,通过PID查找进程名则没有相关命令。但在linux根目录中,有一个/proc的VFS(虚拟文件系统),系统当前运行的所有进程都对应于该目录下的一个 以进程PID命名的文件夹 ,其中存放进程运行的N多信息。其中有一个status文件,cat显示该文件, 第一行的Name 即为进程名。

 

例如进程名为stardict;

shell中分别根据Pid获取进程名、根据进程名获取Pid

1)查找stardict的pid:pidof stardict

2)根据1)的pid查找进程名: grep "Name:" /proc/5884/status  

           查看该pid的所有信息:cat /proc/5884/status

 

应用:kill一个进程需要指定该进程的pid,所以我们需要先根据进程名找到pid,然后再kill;

   killall命令则只需要给定进程名即可,应该是封装了这个过程。

2、kill 和kill 命令应用

杀死进程最安全的方法是单纯使用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,而且僵尸进程占用了大量的系统资源,那么就需要在某个时候重启机器以清除进程表了。

转载地址:http://ykpgi.baihongyu.com/

你可能感兴趣的文章
mysql5.7下面windows平台大小写敏感处理
查看>>
安装了淘宝npm后运行cnpm命令提示不是内部或外部命令。
查看>>
Visual Studio 2017 15.5 版发行说明
查看>>
Bootstrap 4重大更新,亮点解读
查看>>
Angular CLI ng常用命令整理
查看>>
Angular 路由使用整理(一)
查看>>
git回到指定版本命令
查看>>
C#计算两个时间年份月份差
查看>>
Cordova 扫码插件整理-cordova-plugin-qrscanner
查看>>
cordova-plugin-splashscreen设置启动页面和图标
查看>>
cordova-plugin-battery-status监听电池状态
查看>>
cordova-plugin-globalization本地化
查看>>
cordova-plugin-contacts联系人操作
查看>>
cordova-plugin-camera相机插件使用
查看>>
cordova-plugin-media音频播放和录制
查看>>
Visual Studio 2017使用Emmet风格编写Html--ZenCoding
查看>>
iis提示“另一个程序正在使用此文件,进程无法访问。(异常来自HRESULT:0x80070020) ”解决办法
查看>>
Visual Studio Code v1.21发布
查看>>
C# Newtonsoft.Json JObject移除属性,在序列化时忽略
查看>>
Git移除版本控制操作
查看>>