在启动时仅启动已启动的Radicale(仅)启动失败

时间:2018-10-06 10:09:05

标签: python macos launchd radicale

我正在使用部首(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

0 个答案:

没有答案