Bash脚本检查运行过程 [英] Bash script to check running process

查看:69
本文介绍了Bash脚本检查运行过程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我写了一个bash脚本来检查进程是否正在运行.由于ps命令总是返回退出代码1,所以它不起作用.当我从命令行运行ps命令时,$?设置正确,但在脚本中始终为1.知道吗?

I wrote a bash-script to check if a process is running. It doesn't work since the ps command always returns exit code 1. When I run the ps command from the command-line, the $? is correctly set, but within the script it is always 1. Any idea?

#!/bin/bash
SERVICE=$1

ps -a | grep -v grep | grep $1 > /dev/null
result=$?
echo "exit code: ${result}"
if [ "${result}" -eq "0" ] ; then
    echo "`date`: $SERVICE service running, everything is fine"
else
    echo "`date`: $SERVICE is not running"
fi

bash版本:GNU bash,版本3.2.25(1)-发行版(x86_64-redhat-linux-gnu)

Bash version: GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)

推荐答案

有一些非常简单的方法:

There are a few really simple methods:

pgrep procname && echo Running 
pgrep procname || echo Not running 
killall -q -0 procname && echo Running 
pidof procname && echo Running

这篇关于Bash脚本检查运行过程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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