Mac OS X: выполнение сервиса? (конкретно apachectl в другом месте)

Я пытаюсь работать, альтернативная установка апачского httpd (не спрашивайте) на моем Mac. Я могу сделать это, но это только работает, пока я зарегистрирован, и я продолжаю иметь необходимость ввести

sudo /opt/local/apache2/bin/apachectl -k start

и задавался вопросом, был ли способ установить сервис на мой Mac, таким образом, я не должен продолжать делать это.

0
задан 16.11.2009, 07:26

2 ответа

Наилучший вариант состоит в том, чтобы использовать launchd созданный в замене для cron, init и xinetd. Чтобы сделать так, необходимо создать XML-документ (конкретно .plist) для определения то, что Вы хотите сделать. Программа под названием Lingon обеспечивает превосходный GUI для того, чтобы сделать это и установку также.

Можно сохранить следующий файл как com.example.apache2.plist

<?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>
    <true/>
    <key>Label</key>
    <string>com.example.apache2</string>
    <key>OnDemand</key>
    <false/>
    <key>ProgramArguments</key>
    <array>
        <string>/opt/local/bin/apache2/bin/apachectl</string>
        <string>-k</string>
        <string>start</string>
    </array>
</dict>
</plist>

Вы затем хотите установить этот .plist в /Library/LaunchDaemons потому что Вы хотите, чтобы это работало когда запуски компьютера (как услуга). Можно сделать это путем копирования файла в /Library/LaunchDaemons (Пользовательские Демоны в Lingon) и выполнение команды sudo launchctl load -w /Library/LauchDaemons/com.example.apache2.plist. Затем каждый раз, когда компьютер запущен, команда выполняется. Знаменитый, Демоны Запуска в /Library выполняются как корень, таким образом, Вам не нужен sudo.

Для получения дополнительной информации о launchd проверьте страницу справочника, страницу справочника для launchd.plist, Начинающего с launchd, или можно искать здесь на Суперпользователе, поскольку существует несколько вопросов уже о launchd.

2
ответ дан 24.11.2019, 07:01

Корректный способ сделать это было бы через launchd.

http://developer.apple.com/macosx/launchd.html

0
ответ дан 24.11.2019, 07:01

Теги

Похожие вопросы