我有一个带命令的Ruby脚本
`notify-send "Error in EYW Spaces script" "#{Shellwords.escape(message)}"`
如果仅从命令行运行脚本,则会收到弹出消息,但如果将脚本放入crontab中,则会显示
*/5 * * * * ruby ~/software_dev/scripts/new_script.rb
然后什么也没有发生。我知道脚本正在正确运行,因为我正在通过电子邮件将脚本输出发送给我,但只是弹出窗口没有出现。
有什么想法吗?
答案 0 :(得分:1)
看起来这不是特定的红宝石问题,但这是由于从crontab调用notify-send而引起的。
https://askubuntu.com/questions/298608/notify-send-doesnt-work-from-crontab
一种解决方案是在脚本中添加DISPLAY=:0
:
`DISPLAY=:0 notify-send "Error in EYW Spaces script" "#{Shellwords.escape(message)}"`
答案 1 :(得分:0)
可能的问题:
$ while read key value; do echo $key $value ;done <<EOF
> c 3
> e 5
> EOF
c 3
e 5
$ echo -e 'c 3\ne 5' > file
$ while read key value; do echo $key $value ;done <file
c 3
e 5
$ echo -e 'c,3\ne,5' > file
$ while IFS=, read key value; do echo $key $value ;done <file
c 3
e 5
版本和该用户ruby
中的notify-send
PATH
变量尝试一下(将数字更改为正确的DISPLAY值)->
DISPLAY