【发布时间】:2013-01-18 21:10:34
【问题描述】:
我正在尝试通过 crontab 调用 shell 脚本。从 shellscript 我正在调用一个运行 ruby 代码的命令。
~/process.sh
ruby ~/program.rb
在 ruby 代码中,我正在检查一个进程是否正在运行,如果没有尝试发送邮件。
result = `ps aux | grep unicorn`
unless result.match(/unicorn_rails master -c config\/unicorn\/unicorn_development.rb -E development -D/)
`echo "Stopped" | mail -s "a subject" someone@somedomain.com`
end
当我尝试从终端运行 shell 脚本时,它正在完美地发送邮件。但是从 crontab 调用正在发生但邮件没有发送。
在 crontab 内部调用 shell 脚本,如
00 */1 * * * ~/process.sh
请帮我找到解决办法。
【问题讨论】:
-
你确定它可以找到
~/program.rb,因为~是当前用户的根目录吗?尝试在此处使用完整路径。 -
以下 crontab 条目生成的输出是什么: * * * * * which ruby > /tmp/which_ruby.txt
-
只使用准确的路径.....上面我给出的路径举例
标签: ruby shell crontab postfix-mta