linux - 如何用Shell脚本判断一个进程是否在运行?

查看:166
本文介绍了linux - 如何用Shell脚本判断一个进程是否在运行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我现在想写个脚本来重启进程,但首先需要得知这个线程是不是在运行,是的话就杀掉。
我知道ps -ef|grep <参数> 可以获取含有<参数>的运行中的程序,但是每次获取都是有结果的,因为这个:(例如<参数>为java)

zsdx      7552  6702  0 11:36 pts/0    00:00:00 grep --color=auto java

我要怎么排除掉这个输出,才能实现判断进程的运行状态?
或者有什么其他的办法适用于这种情况的?谢谢。

解决方案

可以串一个| grep -v grep把grep去掉

警告: 用ps+grep找进程其实是不可扩展的,如果将来有多个匹配的进程.. 安全的方法是启动时把pid写到文件,要杀掉时从pidfile读。或者交给supervisor管理。

这篇关于linux - 如何用Shell脚本判断一个进程是否在运行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆