赞
踩
ps命令查找与进程相关的PID号:
ps -ef | grep wps | grep -v grep
1、管道符 "|" 用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。 2、"ps -ef" 是 查看所有进程 Unix操作系统在操作风格上主要分为System V和BSD。 其中 "ps -aux" 也是查看所有进程 不过两者右以下区别: (1)-ef是System V展示风格,而-aux是BSD风格 (2)COMMADN列如果过长,-aux会截断显示,而-ef不会 (3)-aux可以查看进程的CPU占用率和内存占用率,而-ef不能 3、 "grep GSM_run.py" 列出含有关键字"GSM_run.py"的所有进程 4、"grep -v grep"是在列出的进程中过滤去除含有关键字"grep"的命令本身的进程. 5、"cut -c 9-15"是截取输入行的第9个字符到第15个字符,而这正好是进程号PID. 某些情况下 9-15 是 不够的 可以 写成 "awk '{print $2}'" 其 表示 按空格分割取第二个元素,即取进程号 PID。 6、"$2" 表示第2列,即进程号PID; 7、"xargs kill -9" xargs命令把前面命令的输出结果(PID)作为"kill -9"命令的参数,并执行. 8、"kill" 命令杀死指定进程PID的进程. 9、"kill -9 PID" 强制杀死进程。(有些进程可能杀不死,就加个-9参数,强制将其杀死) 10、"kill -9 PID1 PID2 PID3 ..."杀死多个进程,在命令 kill -9 后面跟多个进程的PID号即可。(进程号之间以空格隔开) 11、"sudo killall python3" 命令用于杀死指定名字的进程. 12、"sudo pkill python3" 命令杀死所有python3执行的程序。 13、"|sh" ,表示执行打印出来的这些命令,进而达到杀死进程名中包含xx字段的进程。 14、"awk '{print $2}'" 表示输出第二列的进程PID。 15、"awk '{print "kill -9 " $2}'" 列出了所有要杀死的进程,并将之打印在了屏幕上。 16、"pidlist=`ps -ef |grep tomcat |grep -v grep|awk '{print $2}'`" 将需要杀死的进程号赋值给变量 17、"kill -9 $pidlist" 再使用命令 kill -9 杀死他们
1、根据进程PID号杀死进程: 1、根据进程号(PID)杀死进程:第二列显示的就是进程号 kill 命令杀死指定进程PID的进程 kill PID 2、强制杀死进程。(有些进程可能杀不死,就加个-9参数,强制将其杀死) kill -9 PID 3、杀死多个进程,在命令 kill -9 后面跟多个进程的PID号即可。(进程号之间以空格隔开) kill -9 PID1 PID2 PID3 ... 2、强制杀死某个端口号下的所有进程。 示例:杀死tcp端口8080下的所有进程 sudo fuser -k -n tcp 8080 fuser用于通过文件或端口号识别进程。 3、杀死某个命令下的所有进程 1、实例1:使用 killall 命令杀死所有python3 执行的程序: killall [参数] [进程名] killall 命令用于杀死指定名字的进程(kill processes by name) sudo killall python3 注意:一般情况下,不会采用该方法去批量杀死进程,因为此方法可能会造成误杀。 2、实例2:使用 pkill 命令杀死所有python3执行的程序: pkill [参数] [进程名] pkill 命令与 killall 命令相同,同样用于杀死指定名字的进程(kill processes by name) sudo pkill python3 4、杀死进程名中含有xxx字段的所有进程 1、实例:杀死进程名中含 ‘AI_server’ 字段的所有进程(不推荐) ps -def | grep 'AI_server' | cut -c 9-15 | xargs kill -9 已经成功杀死了所有进程名中包含‘AI_srever’字段的所有进程 命令详解: 1、 ps -ef |grep 'AI_server' 这个命令会查出所有进程名字中含有‘AI_server’字段的进程。 2、cut 9-15 从输出结果的每行字符串中截取第9-15个字符, 刚好就是我们所需的进程号。 3、xargs kill -9 命令 xargs 是将前面提取到的所有的进程号,作为参数传给命令 kill -9 , 这样我们就能杀死所有的进程。( xargs kill -9 中的 xargs 命令是用来把前面命令的输出结果(PID)作为 kill -9 命令的参数,并执行该令) 2、方法进阶,优化方法杀死进程名中含 ‘AI_server’ 字段的所有进程(不推荐): ps -ef | grep LOCAL=NO | grep -v grep | cut -c 9-15 | xargs kill -9 注意:(参照方法三中的批量杀死进程的执行结果)使用 ps -ef | grep xxx 命令根据进程名中的字段查找进程ID的时候,同时会包含含有关键字《grep》的进程。 解决办法: 1、 ps -ef |grep 'LOCAL=NO' 这个命令会查出所有进程名字中含有‘LOCAL=NO’字段的进程。 2、grep -v grep 是在列出的进程中去除含有关键字 grep 的进程。 3、cut 9-15 从输出结果的每行字符串中截取第9-15个字符, 刚好就是我们所需的进程号。 4、xargs kill -9 命令 xargs 是将前面提取到的所有的进程号,作为参数传给命令 kill -9 , 这样我们就能杀死所有的进程。( xargs kill -9 中的 xargs 命令是用来把前面命令的输出结果(PID)作为 kill -9 命令的参数,并执行该令) 3、执行打印出来的这些命令,杀死进程名中包含 aaa 字段的进程。 ps -ef|grep 'aaa' |grep -v grep|awk '{print "kill -9 " $2}' |sh 命令详解: 1、ps -ef|grep 'aaa' 这个命令会查出所有进程名字中含有‘aaa’字段的进程。 2、命令 grep -v grep 是过滤掉 grep 命令本身的进程; 3、awk '{print "kill -9 " $2}' 命令会列出所有要杀死的进程,并将之打印在了屏幕上。 4、命令 ps -ef | grep aaa | grep -v grep|awk '{print "kill -9 "$2}' 列出了所有要杀死的进程,并将之打印在了屏幕上。 $2 表示第2列,即进程号PID;。 5、 |sh ,表示执行打印出来的这些命令,进而达到杀死进程名中包含‘aaa’字段的进程。 4、杀死进程名中包含 check_os.sh 字段的进程,并排除 grep 自身的进程,和 打印所有符合条件的进程PID,再将结果传给 kill -9 执行。 ps -ef|grep 'check_os.sh' | grep -v grep | awk '{print $2}' | xargs kill -9 1、ps -ef|grep 'check_os.sh' 这个命令会查出所有进程名字中含有‘check_os.sh’字段的进程。 2、grep -v grep 是过滤掉 grep 命令本身的进程; 3、awk '{print $2}' 表示输出所有进程的第二列的进程PID。 $2 表示第2列,即进程号PID;。 4、xargs kill -9 命令 xargs 是将前面提取到的所有的进程号,作为参数传给命令 kill -9 , 这样我们就能杀死所有的进程。( xargs kill -9 中的 xargs 命令是用来把前面命令的输出结果(PID)作为 kill -9 命令的参数,并执行该令) 5、杀死进程名中包含 tomcat 字段的进程,将需要杀死的进程号赋值给变量,再使用命令 kill -9 杀死他们 pidlist=`ps -ef |grep tomcat |grep -v grep|awk '{print $2}'` kill -9 $pidlist 1、pidlist= 将需要杀死的进程号赋值给变量 pidlist 2、ps -ef|grep 'tomcat' 这个命令会查出所有进程名字中含有‘tomcat’字段的进程。 3、命令 grep -v grep 是过滤掉 grep 命令本身的进程; 4、awk '{print $2}' 表示输出所有进程的第二列的进程PID。 $2 表示第2列,即进程号PID;。 5、kill -9 $pidlist 使用命令 kill -9 杀死变量 pidlist 中的进程号。 注意:有的root进程给命令加sudo提权限是杀不掉进程的,需要切换到root用户再用命令杀进程。 5、杀掉defunct进程-僵尸进程: 僵尸进程:在 Linux 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他,那么他将变成一个僵尸进程。当用ps命令观察进程的执行状态时,看到这些进程的状态栏为defunct是一个早已死亡的进程,但在进程表(processs table)中仍占了一个位置(slot)。 1、查看系统中是否存在defunct进程: ps -ef | grep defunct 2、 查看僵尸进程的ID及其父进程ID: 1、查看所有僵尸进程的ID及其父进程ID: ps -ef | grep defunct | more 2、查看某个僵尸进程的父进程ID ps -ef | grep defunct_process_pid #得到defunct进程的父进程ID UID PID PPID C STIME TTY TIME CMD 条目: UID:用户ID PID:进程ID PPID:父进程ID 3、找到僵尸进程的父进程然后kill -9 杀死: 需要确定僵尸进程的相关信息,比如父进程ppid、僵尸进程的pid以及命令行等信息。 ps -e -o stat,ppid,pid,cmd | egrep '^[Zz]' 说明: ps:ps命令用于获取当前系统的进程信息. -e:参数用于列出所有的进程 -o:参数用于设定输出格式,这里只输出进程的stat(状态信息)、ppid(父进程pid)、pid(当前进程的pid),cmd(即进程的可执行文件。 egrep:是linux下的正则表达式工具 '^[Zz]':这是正则表达式,表示第一个字符的位置,[Zz],表示z或者大写的Z字母,即表示第一个字符为Z或者z开头的进程数据,只所以这样是因为僵尸进程的状态信息以Z或者z字母开头。 3、杀死僵尸进程: 1、重启服务器: sudo reboot 2、通过结束父进程从而结束僵尸进程杀死父进程: kill -9 PPID 3、很多时候遇到僵尸进程我们不能结束父进程,比如父进程是init进程,那一旦结束父进程,整个系统就挂掉了,这时候则可以考虑挂起子进程,这相当于“曲线救国”。一个进程一旦挂起就相当于“什么都不做了”。可以通过执行如下命令来挂起进程。 kill -hup 2563
kill: kill [-s 信号声明 | -n 信号编号 | -信号声明] 进程号 | 任务声明 ... 或 kill -l [信号声明] 向一个任务发送一个信号。 向以 PID 进程号或者 JOBSPEC 任务声明指定的进程发送一个以 SIGSPEC 信号声明或 SIGNUM 信号编号命名的信号。如果没有指定 SIGSPEC 或 SIGNUM,那么假定发送 SIGTERM 信号。 选项: -s sig SIG 是信号名称 -n sig SIG 是信号编号 -l 列出信号名称;如果参数后跟 `-l'则被假设为信号编号, 而相应的信号名称会被列出 Kill 成为 shell 内建有两个理由:它允许使用任务编号而不是进程号, 并且在可以创建的进程数上限达到是允许进程被杀死。 退出状态: 返回成功,除非使用了无效的选项或者有错误发生。
用法: ps [选项] -xx ps --help <simple|list|output|threads|misc|all>' or ps --help <s|l|o|t|m|a> 参数: -s 基本选项: -A, -e 所有进程 -a 除会话引导符外,所有都使用tty a 所有都使用tty,包括其他用户 -d 除会话负责人外 -N, --deselect 取消选择 r 仅运行进程 T 该终端上的所有进程 x 不控制ttys的进程 -l 按列表选择: -C <命令> 命令名称 -G, --Group <GID> 真实的组id或组名 -g, --group <group> 会话或有效组名 -p, p, --pid <PID> 进程编号 --ppid <PID> 父进程编号 -q, q, --quick-pid <PID> 进程id(快速模式) -s, --sid <session> 会话id -t, t, --tty <tty> 终端 -u, U, --user <UID> 有效的用户id或名称 -U, --User <UID> 真实用户编号或名称 选择选项也将其作为参数: 逗号分隔的列表。'-u root,nobody' 或 空白分隔的列表。'-p 123 4567' -o 输出格式: -F 超满的 -f 完整格式,包含命令行 f, --forest ascii 字符艺术显示的进程树 -H 显示流程层次结构 -j 作业的格式 j BSD 任务控制格式 -l 长格式 l BSD 长格式 -M, Z 添加安全数据(用于 SELinux) -O <format> 预加载默认列 O <format> 作为-O,具有BSD特性 -o, o, --format <格式> 用户定义的格式 s 信号格式 u 面向用户的格式 v 虚拟内存格式 X 寄存器格式 -y 不显示标志,显示RSS和地址(与-l一起使用) --context 显示安全上下文(用于 SELinux) --headers 重复标题行,每页一个 --no-headers 根本不打印页眉 --cols, --columns, --width <num> 设置屏幕宽度 --rows, --lines <num> 设置屏幕高度 -t Show threads: H 就像它们是进程一样 -L 可能有LWP和NLWP列 -m, m 后处理 -T 可能与SPID列 -m Miscellaneous options: -c 使用-l选项显示调度类 c 显示真正的命令名 e 命令后显示环境 k, --sort 指定排序顺序为: [+|-]key[,[+|-]key[,...]] L 显示格式说明符 n 显示数字uid和wchan S, --cumulative 包括一些死子进程数据 -y 不显示标志,只显示rss(仅使用-l) -V, V, --version 显示版本信息并退出 -w, w 不限制输出宽度 --help <simple|list|output|threads|misc|all> 显示帮助信息并退出
fuser:无效的选项 --help fuser 显示哪些进程使用指定的文件、端口或文件系统。 用法:fuser [-fIMuvw] [-a|-s] [-4|-6] [-c|-m|-n 命名空间] [-k [-i] [-信号]] 名字... fuser -l fuser -V 参数: -a,--all 也显示未使用的文件 -i,--interactive 杀死程序前询问 (未指定 -k 选项时被忽略) -I,--inode 总是使用 inode 来比较文件 -k,--kill 杀死访问指定文件的进程 -l,--list-signals 列出可用的信号名 -m,--mount 显示所有使用指定文件系统或块设备的进程 -M,--ismountpoint 只在 <名字> 为挂载点时完成要求 -n,--namespace 空间 在指定命名空间中查找 (file、udp 或 tcp) -s,--silent 不输出信息 -信号 发送指定的 "信号" 而不是 SIGKILL -u,--user 显示用户 ID -v,--verbose 输出更多信息 -w,--writeonly 只杀死有权写入的进程 -V,--version 显示版本信息 -4,--ipv4 仅查找 IPv4 套接字 -6,--ipv6 仅查找 IPv6 套接字 - 重置选项 udp/tcp 名字格式: [本地端口][,[远程主机][,[远程端口]]]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。