用于检查进程是否正在运行的Linux脚本,如果没有则重启

时间:2017-11-13 08:47:20

标签: linux bash grep cron pid

我正在使用此脚本查找进程 filebeat ,如果未运行则重新启动它。 Cron每5分钟运行一次这个脚本。大多数情况下,这工作正常,但有时会创建多个filebeat进程。有人可以指出我的剧本中的问题。

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
service=filebeat
servicex=/usr/share/filebeat/bin/filebeat
pid=`pgrep -x "filebeat"`
if [ $pid > /dev/null ]
then
echo "$(date) $service is running!!!"
else
echo "$(date) starting $service"
cd /home/hpov/beats/filebeat
./filebeat -c filebeat.yml &
fi

1 个答案:

答案 0 :(得分:0)

#!/bin/bash
pidof  script.x86 >/dev/null
if [[ $? -ne 0 ]] ; then
        echo "Restarting script:     $(date)" >> /var/log/script.txt
        /etc/script/script.x86 &
fi

超级简单:D