我正在使用部首(https://radicale.org/)作为我的计算机(macox 10.12.6)上的本地calDAV / cardDAV服务器。
从bash开始工作:
python3 -m radicale --config=/Path/to/configuration/file
为了避免我在每次启动时手动调用它,我编写了一个启动的.plist文件(local.radicale.launch.plist
)作为守护程序启动(例如/Library/launchDaemons
)。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<false/>
<key>Label</key>
<string>local.radicale.launch</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/python3</string>
<string>-m</string>
<string>radicale</string>
<string>--config=/path/to/configuration/file</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardOutPath</key>
<string>/path/to/stdout/file</string>
<key>StandardErrorPath</key>
<string>/path/to/stderr/file</string>
</dict>
</plist>
然后使用以下命令将其加载到启动的堆栈中:
sudo launchctl load -w /Library/LaunchDaemons/local.radicale.launch.plist
Radicale立即启动,没有错误。即使当我再次卸载并加载plist时,基本也不会出现任何问题。从bash手动启动根部也可以(如上所述)。
我还用LaunchControl
检查了文件。没有问题。启动并运行。
但是,当我重启机器(以证明所有东西都在正常工作)时,根本无法启动。
很遗憾,StandardOutPath
/ StandardErrorPath
中未记录任何错误。仅在system.log
中我得到了毫无意义的消息:
localhost com.apple.xpc.launchd[1] (local.radicale.launch[81]): Service exited with abnormal code: 1
我可以验证根源plist文件是否已加载(sudo launchctl list | grep radicale
)。即使如此,根本也无法启动。
奇怪的是,手动卸载和重新加载plist(如上文所述)很快就开始了。没有错误,没有问题。
因此,启动时似乎发生了一些奇怪的事情。也许与启动如何执行plist的顺序有关?
由于plist似乎在手动调用时似乎能正确完成其工作,所以我目前的想法已不多了。除了在计算机启动或重新加载。
有人暗示我的手指指向...吗?
在此先感谢您, felic