gpt4 book ai didi

linux - 用于重新启动 memcached 的 Cron 脚本不起作用

转载 作者:太空狗 更新时间:2023-10-29 12:28:15 24 4
gpt4 key购买 nike

我在 cron 中有一个脚本来检查 memcached 并在它不工作时重新启动它。由于某种原因,它无法正常工作。脚本,具有权限:

-rwxr-xr-x  1 root     root       151 Aug 28 22:43 check_memcached.sh

Crontab 条目:

*/5 * * * *  /home/mysite/www/check_memcached.sh  1> /dev/null 2> /dev/null

脚本内容:

#!/bin/sh

ps -eaf | grep 11211 | grep memcached
if [ $? -ne 0 ]; then
service memcached restart
else
echo "eq 0 - memcache running - do nothing"
fi

如果我从命令行运行它,它工作正常,但昨晚 memcached 崩溃了,它没有从 cron 重新启动。我可以看到 cron 每 5 分钟运行一次。

我做错了什么?

我是否需要使用以下而不是 service memcached restart?

/etc/init.d/memcached restart

我有另一个脚本来检查以确保我的 lighttpd 实例正在运行并且工作正常。它验证其正在运行的方式略有不同,但使用 init.d 调用来重新启动。

编辑 - 解决方案:使用/etc/init.d/memcached restart 解决了这个问题。

最佳答案

通常导致 crontab 问题的是命令路径。在命令行中,命令的路径已经存在,但在 cron 中它们通常不存在。如果这是您的问题,您可以通过将以下行添加到您的 crontab 顶部来解决它:

 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

这将为 cron 提供显式路径以查找您的脚本运行的命令。

此外,您脚本中的 shebang 是错误的。它必须是:

#!/bin/bash

关于linux - 用于重新启动 memcached 的 Cron 脚本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35435738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com