今天在虚拟机里安装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 进程文章来源:https://www.toymoban.com/news/detail-477414.html
记录一下,如果kill -9 ,结束不掉进程,那么就去system 服务里看看。利用systemctl 进行停止。文章来源地址https://www.toymoban.com/news/detail-477414.html
到了这里,关于linux 命令 查找进程然后杀掉 ps -ef|grep xxx , kill -9 xxx的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!