bash:检查,如果不运行,请运行一个过程



bash:检查,如果不运行,请运行一个过程

嗨,我的要求是,如果Memcache Server由于生产中的任何原因而关闭,我想立即重新启动

通常,我会以这种方式启动memcache服务器,因为没有任何复制,如下所示

memcached -u没有人-l 192.168.1.1 -m 2076 -x 192.168.1.2 -v

因此,我在crontab中添加了一个条目

(crontab -e)

*/5 * * * * /home/memcached/memcached_autostart.sh

memcached_autostart.sh

#!/bin/bash
ps -eaf | grep 11211 | grep memcached
# if not found - equals to 1, start it
if [ $? -eq 1 ]
then
memcached -u nobody -l 192.168.1.1 -m 2076 -x 192.168.1.2 -v
else
echo "eq 0 - memcache running - do nothing"
fi

我的问题在memcached_autostart.sh内

如果有更好的方法来实现此问题(而不是使用Cron作业)请分享您的经验。

是的,问题是ps -eaf | grep 11211 | grep memcached我假设是过程ID,它在每个开始时总是会改变,所以您应该做的是ps -ef | grep memcached

希望帮助

而不是从cron运行它,您可能需要创建一个适当的init-script。有关示例,请参见/etc/init.d/。另外,如果执行此操作,大多数系统已经具有处理大多数工作的功能,例如检查启动,重新启动,停止,检查已经运行的过程等。

大多数守护程序脚本将PID保存到特殊文件(例如/var/run/foo),然后您可以检查该文件的存在。

对于ubuntu,您可以看到可以复制的 /etc/init.d/skeleton

相关内容

  • 没有找到相关文章

最新更新