linux 命令 查找进程然后杀掉 ps -ef|grep xxx , kill -9 xxx

今天在虚拟机里安装jenkins,安装完后运行正常,可以正常访问页面。

安装成功后,我想在命令行kill 掉这个进程,以下是我的操作。

ps -ef |grep java, 可以看到有以下结果,除了jenkins自己的进程外,还有grep java 这个进程。

ok,我们kill 掉jenkins, 执行命令

kill -9 11967

命令执行成功,在看下结果,

很奇怪,jenkins的进程居然还在。按照网上教程,进入到“/proc/进程号”目录下,执行“cat status”命令可以查询到指定进程的父进程

ps -ef|grep java 也可以显示父进程。 kill -9 父进程。然后kill -9 子进程后。

kill 后 再次执行ps -ef|grep java,这个jenkins 依然还在。并没有kill 掉,进程号还变了。


问题还在,我们想其他办法解决

cd /usr/lib/systemd/system

在此目录下,存放着启动文件的配置位置,里面一般包含有XXXXX.service,我们发现了jenkins.service 文件

我们看下这个文件内容

我们发现service里面的内容

https://www.freedesktop.org/software/systemd/man/systemd.unit.html

https://www.freedesktop.org/software/systemd/man/systemd.service.html#

在service文件里,我们看到了一个配置 Restart=on-failure,

我们看下这个配置是什么意思

restart 除了可以设置on-faliure,还有其他可以设置,no, on-success, on-failure, on-abnormal, on-watchdog, on-abort, or always。

no(默认值):退出后不会重启

on-success:只有正常退出时(退出状态码为0),才会重启

on-failure:非正常退出时(退出状态码非0),包括被信号终止和超时,才会重启

on-abnormal:只有被信号终止和超时,才会重启

on-abort:只有在收到没有捕捉到的信号终止时,才会重启

on-watchdog:超时退出,才会重启

always:不管是什么退出原因,总是重启

这下知道原因了吧,是因为这个服务配置了restart=on-failure,我一直是kill -9 去结束,导致结束后该服务会立刻重启。好了,我们检查一下是不是这样。

cd /usr/lib/systemd/system

执行systemctl status jenkins.service

发现服务正常运行,我们来执行下kill -9

这下明白了,kill -9 后,因为jenkins.service的配置,kill 掉后会立即自己重启。

再次执行systemctl status jenkins.service 查看服务状态,发现服务已经正常启动了。kill 不掉的原因找到了,那么该怎么停掉这个服务呢。

我们看下systemctl 这个命令,systemctl --help

这里面有个stop,我们试下,systemctl stop jenkins.service

这时候jenkins服务就停止了,再次执行ps -ef|grep java,发现没有了jenkins 进程

记录一下,如果kill -9 ,结束不掉进程,那么就去system 服务里看看。利用systemctl 进行停止。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值