g0t3n
V2EX  ›  问与答

有木有人在 osx 上用 crontab 来启动 gui 程序的么

  •  
  •   g0t3n · Nov 10, 2014 · 3942 views
    This topic created in 4221 days ago, the information mentioned may be changed or developed.
    本来我想做的是通过 `say` 或者 `osascript` 来定期提醒下自己注意备份的<魂淡>
    所以我的做法是
    export DISPLAY=:0&&osascript -e 'display alert "G0 B4ck Up N0w"'
    然后就获得这样的报错了
    execution error: No user interaction allowed. (-1713)
    然后我检查了下 DISPLAY 变量发现指向是一个文件 (socket)
    /tmp/launch-O9uQAc/org.macosforge.xquartz:0
    艾玛该怎么做个好看点的提醒啊啊啊
    5 replies    2014-11-10 17:40:04 +08:00
    Neo
        1
    Neo  
       Nov 10, 2014
    太折腾了,用wunderlist这样的工具方便点,而且多平台
    ETiV
        2
    ETiV  
       Nov 10, 2014 via iPhone
    M a c、iOS自带“提醒事项”……

    可以设定提醒时间的
    dorentus
        3
    dorentus  
       Nov 10, 2014
    * DISPLAY 是 X 环境的环境变量,osascript 和 say 都不需要 X 就能运行。
    * export DISPLAY=:0 && osascript -e 'display alert "G0 B4ck Up N0w"' 这样在非 interactive shell 下面,后面的命令(osascript)应该取不到前面设置的 DISPLAY 的值的吧。比较常见的写法是 env DISPLAY=:0 osascript -e 'display alert "G0 B4ck Up N0w"'
    * “No user interaction allowed” 是另外一个问题,解决方式可以参见: http://stackoverflow.com/a/13484552/90172 (我没试过,不过看起来可行)
    * say 写在 crontab 里面的话应该不会有这个问题吧
    * 比较新版本 OS X 自带的 Notification Center 其实也挺适合这个需求的,有一些第三方的命令行程序可以发系统 notification,例如: https://github.com/alloy/terminal-notifier 自己写的话,估计也行。
    dorentus
        4
    dorentus  
       Nov 10, 2014
    另外 launchd 可以用来启动 GUI 的程序。配置文件放在 ~/Library/LaunchAgents 下,配置文件语法参照 man 5 launchd.plist 或者苹果的文档(支持登录后自动启动、定时启动、失败后重新启动等等)。
    g0t3n
        5
    g0t3n  
    OP
       Nov 10, 2014
    @dorentus 感谢你的 stackoverflow 链接,我之前也搜到但没仔细看.的确不需要用到 DISPLAY 变量就能直接显示了。
    正确的写法应该是
    $ crontab -l
    #minute hourly daily monthly weekly CMD
    10 12 * * 1,3 sh brew update;sh brew upgrade;osascript -e 'tell application "Finder"' -e 'activate' -e 'display dialog "we have done brew update [crontab notify]"'

    就是这个样子就能实现了。另外提醒信息在 /var/mail/[username]
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   950 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 19:35 · PVG 03:35 · LAX 12:35 · JFK 15:35
    ♥ Do have faith in what you're doing.