Shell 查找和关闭进程

首先使用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,而且僵尸进程占用了大量的系统资源,那么就需要在某个时候重启机器以清除进程表了。


本文 由 cococo点点 创作,采用 知识共享 署名-非商业性使用-相同方式共享 3.0 中国大陆 许可协议进行许可。欢迎转载,请注明出处:
转载自:cococo点点 http://www.cnblogs.com/coder2012

时间: 2024-11-03 01:44:03

Shell 查找和关闭进程的相关文章

c++-VS操作word,往文档中写入如几万条的数据后,保存然后释放资源关闭进程中,会出现进程未退出

问题描述 VS操作word,往文档中写入如几万条的数据后,保存然后释放资源关闭进程中,会出现进程未退出 VS操作word,往文档中写入如几万条的数据后,保存word,然后释放资源关闭winword.exe过程中,会出现winWord.exe未退出(数据量不大时操作是正常的),请教下,这有可能是什么原因,可否有方法解决?下列代码:void CWord::CloseApp(){ m_wdTable.ReleaseDispatch(); m_wdRange.ReleaseDispatch(); m_w

Shell脚本中获取进程ID的方法

 这篇文章主要介绍了Shell脚本中获取进程ID的方法,我想要知道运行中脚本子shell的进程id,我该如何在shell脚本中得到PID,阅读本文即可找到你想要答案,需要的朋友可以参考下     提问: 我想要知道运行中脚本子shell的进程id.我该如何在shell脚本中得到PID. 当我在执行shell脚本时,它会启动一个叫子shell的进程.作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为"批处理进程"). 在某些情况下,你也许想要知道运行中

winform-C#关闭进程,如何判断系统是否正在运行此进程

问题描述 C#关闭进程,如何判断系统是否正在运行此进程 准备用C#关闭某进程,比如explorer进程,如何判断系统是否正在运行此进程,从而避免因为系统不存在此进程而报错? 用的是这个方法,但是如果系统中未运行该进程,就会报错 string ProcessName = ""explorer""; Process[] MyProcess = Process.GetProcessesByName(ProcessName); MyProcess[0].Kill(); 解决

iOS中:发起语音/视频通话后,发起方断线/飞行模式/关闭进程,没有触发错误回调

问题描述 双方都在线,发起方发起语音通话/视频通话,接收方收到请求,但是暂不接通.此时发起方开启飞行模式/断网/杀进程等操作,接收方没有收到任何回调,仍然可存在于待接通的界面.接收方存在于待接通界面,在发起方已经不在线的情况下,仍然可以接通对话,并且对话仍然会存在连接.另外,在已经接通的对话中,一方进行掉线/杀进程/开飞行模式,没有回调,对话仍然继续.期望:当发起方/接收方一方由于关闭进程/掉线/飞行模式时,能够向另一方发起回调. 以上问题在Demo上能够重现. 解决方案 这个目前是这样的.以后

怎么在不关闭进程的情况下 清除内存中的sessionid

问题描述 怎么在不关闭进程的情况下清除内存中的sessionid 解决方案 解决方案二:Session.Clear();解决方案三:引用1楼return_false的回复: Session.Clear(); 清除客户端的SessionID不是服务端

模拟windows任务管理器列举系统进程,并关闭进程......

其实对于 windows进程的操作很简单,只要理解了 进程线程的概念 对于 进程的操作 那么就只是 几个函数的 问题了  . 下面是 对于进程操作要用到的几个函数 . 进程的概念:我们运行了一个程序,那个这个独立的程序就是一个进程.进程有自己的私有地址空间,进程中的线程共享这些私有地址空间 . 在一个进程中多个线程共同完成一项功能,可以提高工作的效率.  HANDLE WINAPI CreateToolhelp32Snapshot(     //这个函数创建一个系统进程列表的快照 并返快照的句柄

I.MX6 查找占用UART进程

/**************************************************************************** * I.MX6 查找占用UART进程 * 说明: * 由于不明确哪个进程占用了指定的UART口,于是前面在UART驱动中加入了显示 * 波特率设定的代码,这次通过二分法注释init.rc.init.freescale.rc中的service * 来确定到底是那个进程占用了UART口. * * 2016-7-29 深圳 南山平山村 曾剑锋 **

显示进程、关闭进程

首先通过CreateToolhelp32Snapshot函数创建一个进程的快照,然后通过调用Process32First使用快照返回的句柄对进程进行遍历,相关的信息存放在PROCESSENTRY32结构类型的实例中,然后显示出来. Winxp+vb6+sp6 代码如下: Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID

[Linux shell]查找某目录下文件是否包含某个字符串

查找目录下的所有文件中是否含有某个字符串  find .|xargs grep -ri "IBM"  查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名  find .|xargs grep -ri "IBM" -l 1.正则表达式    (1)正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(称为元字符,如/.*.?等)组成.   (2)基本元字符集及其含义       ^ :只匹配行首.   如^a 匹配以a开头的行a