2010-05-13 18 views
1

我已經創建了Cocoa應用程序,它是發射劑的類型。爲了發佈這個,我已經創建了安裝應用程序的軟件包,並將啓動程序plist文件複製到/ Libraries/LaunchAgents中。可可發射劑安裝後註冊自己

現在的問題是安裝後,我希望這個應用程序立即運行在用戶上下文沒有註銷/重新啓動。如果我使用安裝程序中的「launchctl」註冊了此選項,則使用安裝後腳本,它將在根環境中運行,因爲安裝程序在根環境中運行。

任何建議如何代理註冊自己launchctl並在用戶上下文中運行。

回答

3

試試這個在安裝後腳本:

/usr/bin/sudo -u $USER /bin/launchctl load -S Aqua /Library/LaunchAgents/com.yourcompany.launchagent.plist 

注意,如果多個用戶通過快速用戶切換登錄,這樣只會激活安裝了誰是你的用戶推出代理。

在Mac OS X 10.5/10.6上使用launchctl bsexec登錄的多個用戶使用此方法不受支持;請參閱this郵件列表帖子瞭解更多信息。

+0

我試過這個,但這給了我錯誤:「launch_msg():套接字沒有連接」..任何想法? – Unicorn 2010-05-17 07:49:15

+0

它爲我工作。如果您嘗試以登錄用戶身份(http://lists.macosforge.org/pipermail/launchd-dev/2009-June/000553.html)作爲其他用戶進行安裝,則只能獲取該消息。 – 2010-05-17 12:12:29

+0

我也嘗試從終端,直接給用戶名,而不是使用env宏,得到相同的錯誤。這是當前登錄的唯一用戶。不知道發生了什麼問題。我想我可能需要在安裝後使用註銷。謝謝你的幫助。 – Unicorn 2010-05-17 12:29:43