如何从在crontab执行的perl脚本中执行的可执行文件(cap)中捕获STDOUT

时间:2013-09-16 20:44:52

标签: perl bash shell cron capistrano

这是一个冗长的头衔。但它解释了我的问题:

我有一个运行perl脚本的crontab。

perl脚本运行一个cap任务,它向STDOUT输出一些状态消息。

perl脚本应该从cap捕获STDOUT(当前使用反引号)并解析它。

现在,当我从bash用户运行脚本时,这可以100%正常工作。但是,当我从crontab运行脚本时,perl脚本不会捕获cap任务的任何输出。

之前有没有人处理过类似的事情?感谢。

1 个答案:

答案 0 :(得分:1)

也许你的cap可执行文件已经死亡而没有向stdout发送任何消息。您是否检查了执行的成功状态?

你能尝试一下吗?

$check_result = `$cmd 2>&1`;
if ($?){
  die "$cmd failed with $check_result, $!";    
}