0

我使用这个 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 中正常工作

4

1 回答 1

1

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

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

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