在macOS上为AList设置LaunchAgent
条评论文章参考了A Launchd Tutorial(网页存档),其中较为系统地讲述了macOS应用开机启动的配置方式。
文章参考了Apple Developer的一个页面(网页存档),其中对于launchd的设计与使用要求作了讲解。
个人配置
- 操作系统:macOS Ventura 13.1
- AList版本:v3.2.1
编写并保存plist文件
打开惯用的文本编辑器(如“TextEdit.app”),粘贴如下内容:
1 |
|
其中:
Label
键所对应的值local.alist.launch
是plist的文件名,可以根据自己的喜好选取可读性高的英文名称。/path/to/alist
是AList二进制程序的绝对路径。如:/User/john/alist
。/path/to/alist.output.log
是AList启动时输出的内容,存放在了名为alist.output.log的文件中,可以自行设置存放位置。请使用绝对路径。如:/User/john/alist
。/path/to/alist/directory
是存放AList二进制程序的目录的绝对路径,即比第一个/path/to/alist
少了最后的“alist”。
之后,保存文件,将文件名按照上述Label
键的值填写,此处使用local.alist.launch.plist
。将保存的文件拷贝至~/Library/LaunchAgents
。
利用plist文件设置开机启动
在终端中输入launchctl load -w
(注意末尾有空格),再将刚刚拷贝到LaunchAgents
目录下的plist文件拖拽到终端内释放(即输入文件路径),之后按下return键。plist文件会立即加载,并从下次登录起自动加载(即登录启动)。
- 如果没有输出,则在终端中输入
ps -ef | grep alist
,应当能够看到/path/to/alist server
项。此即配置成功,可以打开浏览器访问验证。(当然,前提是你之前没有手动打开AList) - 如果加载时遇到报错,或者没有在
ps -ef | grep alist
后看到预期的输出,则是plist文件编写存在问题。可先使用plutil -lint /path/to/plist/file
检查语法错误,再进一步排查。- 如果修改了有问题的plist后,需要重新加载,则可以先在终端中输入
launchctl unload -w /path/to/plist/file
解除加载,之后再使用前面的launchctl load -w
加载。
- 如果修改了有问题的plist后,需要重新加载,则可以先在终端中输入
参数说明
KeepAlive
–NetworkState
–true
(必需):在网络连接后启动,这与官方文档中的守护进程写法类似。Label
–local.alist.launch
(必需):plist的项目名字是local.alist.launch
,可以自行修改。ProgramArguments
–/path/to/alist
,server
(必需):第一个位置是二进制程序绝对路径,第二个及之后的位置为顺序的参数。RunAtLoad
–true
(必需):加载即启动。加载和启动是两部分,不打开此项,则仅加载不启动。StandardErrorPath
–/path/to/alist.output.log
(可选):将运行时的输出转存至/path/to/alist.output.log
(绝对路径),可以自行修改(包括文件名)。便于debug,跟踪运行情况。WorkingDirectory
–/path/to/alist/directory
(必需):设置AList的工作目录为/path/to/alist/directory
,即存放AList二进制程序的目录的绝对路径(非常重要)。**如果不设置,则默认是系统根目录/
**,在较新版本的系统中是只读的,无法生成AList运行所需配置文件;或者如果是可写的,则AList会在那里自动重新写配置文件,这同样不是预期的行为。
注意事项
上文中给出的方式是针对当前用户设置用户级启动项,能够满足大多数个人用户。所有操作是在当前用户有权限的目录下进行的,因此请勿使用sudo
执行。使用sudo
执行会导致系统因所有者权限问题而提出警告(warning)。
系统级启动项的plist一般放在系统级路径下(如/Library/LaunchDaemons
,/Library/LaunchAgents
等),且所需启动的plist所有者需要是root
,所以对于使用了sudo
设置用户级启动项的情况,有些“教程”可能才给出了使用chown
的解决方案。这样将用户文件夹内的启动项设置为系统级启动项、并更改所有者为root
的做法是不推荐的。
本文标题:在macOS上为AList设置LaunchAgent
文章作者:Whyto
发布时间:2023-01-14
最后更新:2023-01-26
原始链接:https://new.whyto.net/2023/01/15/launch-agent-for-alist-on-macos/
版权声明:转载请注明来源、不要修改。