我正在构建一个桌面应用程序,它在安装过程中创建一个服务(守护进程)。哪里存储不应该移动的服务(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)
,具体取决于您是按用户安装还是按计算机安装。通常,后者是优选的。
非常感谢。 –