1、首先,连接相应linux主机,进入到linux命令行状态下,等待输入shell指令。
2、其次,以终止进程号1984的nginx子进程为例,在linux命令行中输入:kill -9 1984。
3、最后,按下回车键执行shell指令,此时会看到进程号1984的nginx子进程被成功终止了。
kill -15 PID —— 正常方式终止一个程序。中断进程时应首先用 -15,以便于其能够预先清理临时文件和释放资源。-9 作为最后手段,应对那些失控的进程。
1)、kill -15 终止后台运行的进程。
红色下划线:sleep 10000 &—— 后台运行延时 10000 秒的命令,进程 ID 为1550。
黄色下划线:ps -j —— 列出 1550 sleep 命令的进程。
(PID:进程 ID、PGID:线程组 ID、SID:会话 ID、TTY:进程运行的终端,标识那个终端控制。(pts远程终端、tty系统终端)、TIME:进程运行的时间 和 CMD:命令的名称和参数)。
jobs -l —— 列出后台运行的命令,1550 sleep 命令正在后台运行。
蓝色下划线:kill -15 1550—— 终止1550 进程。系统反馈 Terminated 终止 1550 进程。
绿色方框:ps -j 已查询不到 1550 sleep 的进程。jobs -l 也没有后台运行的命令。
2)、kill -15 配合 fg 查看终止挂起的进程。
红色下划线:sleep 10000 延时 10000 秒后 ctrl + z 挂起。
黄色下划线:ps -j 查看进程,有 1578 sleep 的进程。jobs -l 查看后台,1578 sleep 的状态是 stopped 暂停状态。
蓝色下划线:kill -15 终止 1578 进程。此时系统没有反馈信息。
绿色下划线:ps -j 查看进程,1578 sleep 进程仍在。jobs -l 查看后台,1578 sleep 的状态是 stopped 暂停状态。
红色下划线:fg 1 把后台运行的 sleep 调至前台继续运行。此时,系统首先提示 sleep 已经调至前台运行,然后又提示 Terminated 终止进程。
蓝色下划线:ps -j 查看进程已经没有了 1578 sleep 进程。jobs -j 查看也后台也没有命令在执行。
3)、kill -15 配合 bg 查看终止挂起的进程。
同样的,首先sleep 10000 后 ctrl + z 挂起。通过 ps -j 查看后台进程有 1590 sleep进程,josb -l 查看后台也有状态为 stopped 的1590 sleep 命令。 然后,kill -15 1590 终止 1590 进程。再次通过 ps -j 查看1590 sleep进程仍在,josb -l 查看后台还有状态为 stopped 的1590 sleep 命令。
红色下划线:bg 1 把挂起的 sleep 命令继续运行。此时,系统反馈 sleep 命令在后台运行。
黄色下划线:ps -j 查看进程,系统反馈 sleep 进程已经 Terminated 终止。jobs -l 也查询不到sleep 在后台运行。
从实验上看:
1、后台命令运行时(Running),执行 kill -15 可以终止进程。
2、挂起命令,处于暂停状态时(Stopped),执行 kill -15 后通过 ps 还可以查询到进程, jobs还可以查询到后台命令,状态仍然是 Stopped 暂停状态。用 fg 把暂停的后台进程调至前台运行时,系统反馈一行 sleep 命令调至前台运行。跟着一条 Terminated 终止进程。再用 ps 查询不到进程。用 jobs 已经查询不到后台命令。(这里和 kill -2 不同,kill -2 后用 fg 系统只反馈一行 sleep 命令调至前台运行,没有提示进程已中断。)
3、挂起命令,处于暂停状态时(Stopped),执行 kill -15 后通过 ps 还可以查询到进程, jobs还可以查询到后台命令,状态仍然是 Stopped 暂停状态。用 bg 把暂停的后台命令恢复运行时,系统反馈 sleep 命令在后台运行。再用 ps 查询进程已经终止,用 jobs 已经查询不到后台命令。(这里和 kill -2一样)
原文网址:https://blog.csdn.net/stocky1234/article/details/84529153
查看原文: http://www.sijitao.net/1557.html
在linux系统管理中,我们有时候需要结束掉某个用户的所有进程。初学者一般会先查询出用户的所有pid,然后一条条kill结束掉,或者写一个脚本。实际上结束的方法有很多,博主这边总结了下面4种方法,以kill用户zhangnq为例。
1. pkill方式
# pkill -u zhangnq
2. killall方式
# killall -u zhangnq
3. ps方式 ps列出zhangnq的pid,然后依次kill掉,比较繁琐。
# ps -ef | grep zhangnq | awk '{ print $2 }' | xargs kill -9
4. pgrep方式 pgrep -u参数查出用户的所有pid,然后依次kill
# pgrep -u zhangnq | xargs kill -9
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)