【问题标题】:shell script adjusment - not working fine with cronshell 脚本调整 - 无法与 cron 一起正常工作
【发布时间】:2012-10-31 11:11:27
【问题描述】:

我使用这个 bash 脚本来检查服务是否运行,如果运行脚本将退出,否则它将运行另一个执行某些命令的脚本 一旦完成,它将退出 我的问题是当我手动运行我的脚本时它工作正常但是当我使用 cron 运行它时它没有运行并且没有正确执行这里是我的脚本

  #!/bin/sh
  SERVICE='loop2.sh'

  if ps ax | grep -v grep | grep $SERVICE > /dev/null
 then
     echo "$SERVICE service running, everything is fine"
 else
 /home//www/loop2.sh
 fi

对我的脚本进行任何调整以在 cron 中正常工作

【问题讨论】:

    标签: bash shell cron


    【解决方案1】:

    你不是很具体。你看到了什么错误?

    请注意,进程在具有缩减环境的 cron 下运行。特别是 PATH 等环境变量将从您的交互式 shell 中大大减少。

    1. 记录您的脚本 stdout/stderr 例如myscript 2>&1 >/tmp/script.log
    2. 通过脚本中的env 命令检查您的环境是否符合预期
    3. 这个脚本真的做你想要的吗?并与您希望的 cron 交互?如果您的服务没有运行,您会生成一个新服务,但我希望您将其置于后台,从而使其成为守护进程,而不是 cron 进程的(孙)子进程
    4. 你的脚本是否可以被cron下的任何用户执行?

    【讨论】:

    • 没有错误可以说我运行 sh myshell.sh 它的运行正常并且没有错误并执行直到退出但是如果我将它添加到 cron 就像每 5 分钟运行一次 */5 * * * * / bin/sh /home/www/myshell.sh 它只是没有运行
    猜你喜欢
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    • 2022-12-02
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    相关资源
    最近更新 更多