在Windows中,可以創建可作爲服務安裝的應用程序。這種類型的應用程序稱爲Windows服務。 Mac OS X上的服務相當於什麼?它們是如何實現的以及從哪裏開始瞭解它?如何爲Mac OS X創建Windows服務?
我想創建一個服務來自動執行任務,並根據需要啓動和停止它。
在Windows中,可以創建可作爲服務安裝的應用程序。這種類型的應用程序稱爲Windows服務。 Mac OS X上的服務相當於什麼?它們是如何實現的以及從哪裏開始瞭解它?如何爲Mac OS X創建Windows服務?
我想創建一個服務來自動執行任務,並根據需要啓動和停止它。
您需要成爲朋友launchd
。你需要創建一個被放置在五個位置中的一個launchd
配置文件:
~/Library/LaunchAgents
:由用戶提供的每用戶代理。
/Library/LaunchAgents
:管理員提供的每用戶代理。
/Library/LaunchDaemons
:系統範圍的守護進程由 管理員提供。
/System/Library/LaunchAgents
:由Mac OS X上提供每個用戶代理
/System/Library/LaunchDaemons
:由Mac OS X.提供全系統守護程序
甲守護程序是一個系統範圍的服務,其中有一個實例爲所有客戶端。 代理是基於每個用戶運行的服務。
Configuration files是的property list.
的語法很簡單的形式,但它很容易搞錯。如果man page不符合您的喜好,Wikipedia article對選項有很好的總結。
本質上,你要做的是在某個地方安裝實際的命令行工具(你的服務),然後創建一個launchd
配置plist並將其放置在上述位置之一。您可以配置plist,以便launchd
在啓動時或定期運行您的服務,或者響應各種操作(例如文件夾內容的更改)。
有一篇很好的深入文章here。
/Library中的項目(與單個用戶的〜/ Library相對)將針對每個登錄的用戶運行,是否正確? –
是的,沒錯。 –
有沒有辦法讓這個應用程序在啓動時使用launchd以root身份運行? –
你應該看看啓動,你可以做很多漂亮的東西。例如,蒸汽告訴launchd,每當蒸汽被刪除時,運行steam_delete幫助工具。這個幫助工具可以幫助您徹底卸載系統中的蒸汽。
其他的還包括谷歌瀏覽器在OS X的自動更新機制
的鏈接,以幫助您開始:Devdaily launchd examples
感謝您的回答。 – willyMon
Mac在某一時刻正在運行一個修改過的bsd內核。他們是否有類似cron的工具? http:// benr75。com/pages/using_crontab_mac_os_x_unix_linux – Chris
確實可以使用'cron',但它的使用已被棄用,以'launchd'爲優先。 –
好吧,我已閱讀launchd,似乎是正確的解決方案。 thx – willyMon