Я использую radicale (https://radicale.org/) в качестве локального сервера calDAV / cardDAV на моей машине (macox 10.12.6).
Запуск с bash работает:
python3 -m radicale --config=/Path/to/configuration/file
Чтобы избавить меня от необходимости вызывать его вручную при каждом запуске, я написал файл .plist launchd (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>
И затем загрузите его встек launchd с:
sudo launchctl load -w /Library/LaunchDaemons/local.radicale.launch.plist
Radicale запускается немедленно без ошибок. Даже когда я снова выгружаю и загружаю plist, radicale запускается снова без проблем. Запуск radicale из bash вручную также работает (s.выше).
Я также проверил файл с LaunchControl
. Никаких проблем. Работает и работает.
Но когда я перезагружаю свою машину (чтобы убедиться, что все на самом деле работает), radicaleне запускается.
К сожалению, в StandardOutPath
/ StandardErrorPath
не регистрируются ошибки. Только в system.log
я получаю бессмысленное сообщение:
localhost com.apple.xpc.launchd[1] (local.radicale.launch[81]): Service exited with abnormal code: 1
Я мог убедиться, чтоФайл radicale plist не загружен (sudo launchctl list | grep radicale
). Даже при этом не удается запустить radicale.
Странно, разгрузка и загрузка листа вручную (s.выше) получает радикала, чтобы начать прямо сейчас.Без ошибок, без проблем.
Так что, кажется, при загрузке происходит что-то странное.Может быть, это связано с тем, как launchd выполняет список?
В настоящее время у меня заканчиваются идеи о том, что может быть не так (или, скорее, что я сделал неправильно), так как plist, кажется, правильно выполняет свою работу, вызывая его вручную.За исключением загрузки или перезагрузки машины.
У кого-нибудь есть подсказка, куда мне указывать ...?
Заранее спасибо, что касается Фелика