【发布时间】:2013-05-17 19:24:00
【问题描述】:
我想定期弹出一个通知(我有一个“当前任务”想在番茄风格的应用程序中显示)。我正在尝试使用用户启动代理来安排任务,该任务可成功运行 .sh 或 .py 脚本。但是,我无法安排 terminal-notifier 成功启动。其他阅读的可能原因是启动代理进程的环境变量与通常登录的用户环境不同。
我通过gem install terminal-notifier安装终端通知器
myusername@Nathans-MacBook-Pro~/bin$ which terminal-notifier
/Users/myusername/.rvm/gems/ruby-2.0.0-p0/bin/terminal-notifier
这是我的 shell 脚本reminder.sh:
#!/bin/sh
date >>/tmp/reminder.log
terminal-notifier -message "message txt" -title "title txt"
直接从终端运行此脚本按预期工作:在reminder.log 中记录一个时间戳,并出现通知弹出窗口。但是,当我尝试通过启动代理运行它时,它会失败。
我在~/Library/LaunchAgents/ 中放入了一个文件com.myusername.Reminder.plist,内容如下。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.myusername.Reminder</string>
<key>Program</key>
<string>/Users/myusername/bin/reminder.sh</string>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>10</integer>
</dict>
</plist>
创建此文件后,我将其加载
launchctl load ~/Library/LaunchAgents/com.myusername.Reminder.plist
并且(不确定是否需要,因为它包括 RunAtLoad)
launchctl start com.myusername.Reminder
虽然它每 10 秒成功记录一个时间戳到文件中,但它不会触发通知。
关于如何使它成功运行的任何提示?
谢谢!
【问题讨论】:
-
您在这个问题上需要更多帮助吗?
标签: ruby macos notifications osx-mountain-lion launchd