我正在構建一個桌面應用程序,它在安裝過程中創建一個服務(守護進程)。哪裏存儲不應該移動的服務(OSX應用程序安裝)?
但是,在註冊服務之前,我想將此服務的文件安裝到與應用程序的目錄不同的位置 - 用戶可能想要將應用程序從應用程序目錄中移出,並且如果服務更改位置在操作系統的下一個開始,它將不會被找到,我的應用程序將無法找到它。
我應該在哪裏安裝服務?
在此先感謝。
更新:
是 「〜/資源庫/服務」 正確的地方?
或者,也許,「/ Drivename /圖書館/服務」爲多用戶使用?
我正在構建一個桌面應用程序,它在安裝過程中創建一個服務(守護進程)。哪裏存儲不應該移動的服務(OSX應用程序安裝)?
但是,在註冊服務之前,我想將此服務的文件安裝到與應用程序的目錄不同的位置 - 用戶可能想要將應用程序從應用程序目錄中移出,並且如果服務更改位置在操作系統的下一個開始,它將不會被找到,我的應用程序將無法找到它。
我應該在哪裏安裝服務?
在此先感謝。
更新:
是 「〜/資源庫/服務」 正確的地方?
或者,也許,「/ Drivename /圖書館/服務」爲多用戶使用?
這個問題有一個術語含糊不清,它可能會導致你一些困難,以確定在哪裏找到你的文件。
在OSX中,一個服務可以有兩個方面的含義,其中之一是與該響應的應用中服務菜單項執行的代碼,這就是存儲在各種/Library/Services
,/System/Library/Services
和~/Library/Services
目錄,所以你不想把它們放在那裏。
守護程序控制文件放置
假設大約一個守護進程(你在你的消息的文本明確提到),那麼你會想將它放在LaunchAgent
或LaunchDaemon
目錄和使用一個launchd
爲您啓動守護進程。對於launchd
目的,代理程序按用戶運行,守護程序按系統運行(差異在於運行多少個副本)。
對於單個用戶使用並在用戶登錄時啓動的守護程序/服務,其配置文件可能存儲在~/Library/LaunchAgents
中,這將允許系統在用戶登錄到系統時將其踢出。如果您需要隨時可用的內容(即在系統啓動時啓動),則需要獲取權限並安裝在/Library/LaunchDaemons
位置。
這就是配置文件,用於launchd
的故事,但它並沒有解決直接在哪裏把可執行文件,以避免它們被斷開連接,如果用戶重新定位/Applications
文件夾以外的應用問題。
守護程序可執行文件放置
這些天,較少的用戶正在應用了/Applications
文件夾,除非他們有意卸載或禁用它們,所以你可能希望避免試圖阻止這一點。相反,啓動應用程序時,應驗證守護程序是否正在運行,如果不是,請使用應用程序的內部Library
文件夾作爲launchd
配置引用的代碼的存儲庫來安裝並激活相應的launchd
配置。
如果您選擇單獨存儲它們,則應將它們放入~/Library/Application Support/(your app's id)
或/Library/Application Support/(your app's id)
,具體取決於您是按用戶安裝還是按計算機安裝。通常,後者是優選的。
非常感謝。 –