Я начал писать заметку о launchctl, но понял, что сегодня её не закончу. Поэтому кратко расскажу о том, как загружать или выгружать сервисы, установленные через MacPorts.
Стартовые скрипты MacPorts размещает в файлах /Library/LaunchDaemons/org.macports.${port}.plist.
Загрузить сервисы можно либо привычно через launchctl
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.${port}.plist
либо через MacPorts:
$ sudo port load port
Останов сервиса:
$ sudo launchctl unload -w /Library/LaunchDaemons/org.macports.${port}.plist
или
$ sudo port unload port
Например, установим apache2 (он толком в Mac OS X не нужен, так как при включении “Web sharing” загружается Apache/2.2.11):
$ sudo port install apache2
Ставится конфигурационный файл launchctl /Library/LaunchDaemons/org.macports.apache2.plist:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd" > <plist version='1.0'> <dict> <key>Label</key><string>org.macports.apache2</string> <key>ProgramArguments</key> <array> <string>/opt/local/bin/daemondo</string> <string>--label=apache2</string> <string>--start-cmd</string> <string>/opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper</string> <string>start</string> <string>;</string> <string>--stop-cmd</string> <string>/opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper</string> <string>stop</string> <string>;</string> <string>--restart-cmd</string> <string>/opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper</string> <string>restart</string> <string>;</string> <string>--pid=none</string> </array> <key>Debug</key><false/> <key>Disabled</key><true/> <key>OnDemand</key><false/> <key>RunAtLoad</key><false/> </dict> </plist>
Загрузка:
$ sudo port load apache2
Выгрузка:
$ sudo port unload apache2
В следующей статье я детально расскажу о launchctl.