Ⅰ linux kill不能杀死shell脚本死循环
使用ps aux|grep ”脚本名“这种方式查找时,查看grep ”脚本“以外行的PID。
ps -ef 能比较直观显示进程PID、PPID(当前PID的父进程),程序名(最后一列)。
注意:你杀的应该是运行脚本时命令对应的PID,不是脚本里启动的额外程序的PID,否则可能产生僵死进程。
Ⅱ linux鐖惰繘绋嫔瓙杩涚▼linux鐖惰繘绋嫔瓙杩涚▼
linuxkill𨱒涓嶆帀杩涚▼锛
linux杩涚▼kill涓嶆帀
涓鏄杩涚▼宸茬粡鎴愪负镀垫昏繘绋,褰揿畠镄勭埗杩涚▼灏嗗畠锲炴敹鎴栧皢瀹幂殑鐖惰繘绋媖ill鎺夊嵆鍙鍦╬s杈揿嚭鐪嬩笉鍒颁简;
浜屾槸杩涚▼姝e勫湪鍐呮牳鐘舵佷腑,Linux杩涚▼杩愯屾椂鍒嗗唴镙稿拰鐢ㄦ埛涓ょ岖姸镐,褰撹繘绋嬭繘鍏ュ唴镙哥姸镐佸悗,浼氩睆钄芥墍链変俊鍙,鍖呮嫭SIGKIL,镓浠ヨ繖涓镞跺檏ill-9涔熷彉寰楁棤鏁堜简銆
linux涓嬩粈涔埚彨鐖惰繘绋嫔拰瀛愯繘绋嬶纻
1銆佺埗杩涚▼
鎸囧凡鍒涘缓涓涓鎴栧氢釜瀛愯繘绋嬬殑杩涚▼銆傚湪UNIX閲岋纴闄や简杩涚▼0浠ュ栫殑镓链夎繘绋嬮兘鏄鐢卞叾浠栬繘绋嬩娇鐢ㄧ郴缁熻皟鐢╢ork鍒涘缓镄勶纴杩欓噷璋幂敤fork鍒涘缓鏂拌繘绋嬬殑杩涚▼鍗充负鐖惰繘绋嬶纴钥岀浉瀵瑰簲镄勪负鍏跺垱寤哄嚭镄勮繘绋嫔垯涓哄瓙杩涚▼锛屽洜钥岄櫎浜呜繘绋0浠ュ栫殑杩涚▼閮藉彧链変竴涓鐖惰繘绋嬶纴浣嗕竴涓杩涚▼鍙浠ユ湁澶氢釜瀛愯繘绋嬨
2銆佸瓙杩涚▼
鎸囩殑鏄鐢卞彟涓杩涚▼锛埚瑰簲绉颁箣涓虹埗杩涚▼锛夋墍鍒涘缓镄勮繘绋嬨傚瓙杩涚▼缁ф圹浜嗗瑰簲镄勭埗杩涚▼镄勫ぇ閮ㄥ垎灞炴э纴濡傛枃浠舵弿杩扮︺傚湪Unix涓锛屽瓙杩涚▼阃氩父涓虹郴缁熻皟鐢╢ork镄勪骇鐗┿傚湪姝ゆ儏鍐典笅锛屽瓙杩涚▼涓寮濮嫔氨鏄鐖惰繘绋嬬殑鍓链锛岃屽湪杩欎箣钖庯纴镙规嵁鍏蜂綋闇瑕侊纴瀛愯繘绋嫔彲浠ュ熷姪exec璋幂敤𨱒ラ摼寮忓姞杞藉彟涓绋嫔簭銆
linux镐庝箞纭璁よ繘绋嬫槸璋佽皟鐢锛
阃氲繃pid锛宲s-lA鍜宲saxjf閮借兘鐪嫔埌鐖惰繘绋嬬殑PID锛坧pid锛夛纴缂栫▼镄勮瘽锛屽彲鐢╣etppid鍑芥暟
Ⅲ linux𨱒姝昏繘绋嫔懡浠killlinux𨱒姝昏繘绋
linuxkill𨱒涓嶆帀杩涚▼锛
linux杩涚▼kill涓嶆帀
涓鏄杩涚▼宸茬粡鎴愪负镀垫昏繘绋,褰揿畠镄勭埗杩涚▼灏嗗畠锲炴敹鎴栧皢瀹幂殑鐖惰繘绋媖ill鎺夊嵆鍙鍦╬s杈揿嚭鐪嬩笉鍒颁简;
浜屾槸杩涚▼姝e勫湪鍐呮牳鐘舵佷腑,Linux杩涚▼杩愯屾椂鍒嗗唴镙稿拰鐢ㄦ埛涓ょ岖姸镐,褰撹繘绋嬭繘鍏ュ唴镙哥姸镐佸悗,浼氩睆钄芥墍链変俊鍙,鍖呮嫭SIGKIL,镓浠ヨ繖涓镞跺檏ill-9涔熷彉寰楁棤鏁堜简銆
濡备綍kill𨱒鎺塴inux绯荤粺涓镄勫兊灏竏efunct杩涚▼锛
镓惧埌璇defunct镀靛案杩涚▼镄勭埗杩涚▼锛屽皢璇ヨ繘绋嬬殑鐖惰繘绋嬫潃鎺夛纴鍒欐defunct杩涚▼灏呜嚜锷ㄦ秷澶
linux濡备綍镆ヨ繘绋嬶纴𨱒杩涚▼锛岄吨钖杩涚▼锛
镆ユ垒杩涚▼ps-ef|grep-vgrep|grep"XXXXX"𨱒杩涚▼kill-9`ps-ef|grep-vgrep|grepXXXXX|awk'{print$2}'`閲嶈捣serviceXXXXrestart
濡备綍𨱒鎺茔inux涓镄勫兊灏歌繘绋嬶纻
1銆佷娇鐢╰op锻戒护灏卞彲浠ユ煡鐪嫔埌镀靛案杩涚▼銆
2銆佹煡鐪嫔叿浣撹繘绋媝id#ps-A-ostat,ppid,pid,cmd|grep-e"^"璇存槑锛氢笉鏄镆ヤ笉鍑哄兊灏歌繘绋嬶纴鏄锲犱负鎴戦吨钖浜嗙郴缁燂纴娌℃湁镀靛案杩涚▼銆
3銆佹潃姝诲兊灏歌繘绋#kill-9pid鍙
Ⅳ 【kill】kill -9 杀不死的进程处理办法
kill -9 发送SIGKILL信号给进程将其终止,但对于以下两种情况不适用:
1.该进程是僵尸进程(STAT z),此时进程已经释放所有的资源,但是没有被父进程释放。
僵尸进程要等到父进程结束,或者重启系统才可以被释放。
2.进程处于“内核态”,并且在等待不可获得的资源,处于“内核态 ”的资源默认忽略所有信号,只能重启系统解决。
进程在Linux 中会处于两种状态,即用户态和内核态。只有处于用户态的进程才可以用“kill”命令将其终止
一般可以用top命令发现动态进程表,其中zombie是僵尸进程:
用ps和grep命令寻找僵尸进
# ps -A -o stat,ppid,pid,cmd
# ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]'
命令注解:
-A 参数列出所有进程
-o 自定义输出字段
我们设定显示字段为 stat(状态), ppid(进程父id), pid(进程id),cmd(命令)这四个参数 因为状态为 z或者Z的进程为僵尸进程。
我们使用grep抓取stat状态为zZ进程,使用 kill -HUP ${pid} 来杀掉这个僵尸进程。
Ⅳ Linux里面kill -9的含义是什么
一般来说Linux里边的kill是杀死进程的意思。而加了一个-9。是表示无条件的杀死进程。所以这个命令的意思就是,不管这个进程正在执行还是已经结束,都要杀死掉它。
Ⅵ 一个shell脚本,kill进程kill -9 ${PROC_ID}的时候没有立即kill
你是说找到系统中所有名字为sleep的进程ID,并且杀死它们,是吗? 我没有LINUX平台测试,我使用的HP-UX,下面的代码你可能需要适当调整才可以使用。 下面的命令可以找出系统中的所有进程: ps -e 要查找所有名称为sleep的经常,有的系统可以给ps使用-n参数,例如: ps -n sleep 但是通用一点的办法是在ps -e的结果里面grep,下面的命令即可: ps -e | grep sleep 前面的ps命令输出了进程的ID、终端等信息,如果只需要ID内容,可以使用cut -c来获取,例如: ps -e | cut -c1-6 获取上面输出的所有PID到内存变量的shell语句是: pids=`ps -e | cut -c1-6`