Я не могу заставить XAMPP запускаться автоматически в OS X

Я не могу заставить XAMPP запускаться, когда OS X загружается. Я исследовал это в течение некоторого времени, но без удачи. XAMPP должен быть запущен как корень, и я не хочу хранить пароль для корня в сценарии где-нибудь и использовать "объекты входа в систему" области приставки учетных записей для запуска xampp. Да, это будет работать, но это не правильный путь.

Я пытаюсь запустить его с помощью launchd / пользовательские демоны / LaunchDaemons. Это включает создание plist файла в "/Library/LaunchDaemons" каталог.

Я создал названный файл xampp.startapache.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>EnableTransactions</key>
<true/>
<key>Label</key>
<string>xampp.startapache</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/XAMPP/xamppfiles/xampp</string>
<string>startapache</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>WorkingDirectory</key>
<string>/Applications/XAMPP/xamppfiles</string>
</dict>
</plist>

Это было обрисовано в общих чертах здесь, а также на нескольких других подобных страницах справки. Я попытался редактировать файлы вручную, и я также попытался использовать Lingon. Но это просто dosen't работа! Я даже попытался делать подобную запись для файла сценария, расположенного в том же каталоге, который повторил бы время к файлу журнала. Файл журнала является просто пробелом - как сценарий, не выполняется.

Как я могу сделать эту работу?

1
задан 09.02.2011, 17:44

2 ответа

Вот то, что закончило тем, что работало на меня:

Создайте эти два файла:

/Library/LaunchDaemons/xampp.sql.startapache.plist
/Library/LaunchDaemons/xampp.startapache.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>EnableTransactions</key>
<true/>
<key>Label</key>
<string>xampp.startapache.mysql</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/XAMPP/xamppfiles/xampp</string>
<string>startmysql</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>WorkingDirectory</key>
<string>/Applications/XAMPP/xamppfiles</string>
<key>KeepAlive</key>
<false/>
<key>AbandonProcessGroup</key>
<true/>
</dict>
</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>EnableTransactions</key>
<true/>
<key>Label</key>
<string>xampp.startapache</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/XAMPP/xamppfiles/xampp</string>
<string>startapache</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>WorkingDirectory</key>
<string>/Applications/XAMPP/xamppfiles</string>
<key>KeepAlive</key>
<false/>
<key>AbandonProcessGroup</key>
<true/>
</dict>
</plist>

Я должен был иметь два, потому что, когда у меня не было sql один конкретно, mysql не запускался, но апач был. Это может быть то, потому что мне включили SSL или что-то странное как этот. Во всяком случае, решая их обоих проблема для меня, и я действительно использовал Console.app для проверки на сообщения об ошибках, когда стартовый апач - который был полезен, также.

2
ответ дан 12.12.2019, 10:35

Я подозреваю, что Вы сталкиваетесь с ожиданиями launchd программ, которые это запускает. Это, прежде всего, не предназначается для вещей, которые должны просто быть выполнены, это для вещей, которые должны быть выполнены и поддержаны - итак, когда xampp startapache концы, launchd говорит себе "OMG, из которого он вышел, я должен очистить оставление и запустить новый экземпляр"... Я не протестировал это с xampp, но я подозреваю, что, добавляя ключи к .plist, чтобы сказать он не перезапускать (KeepAlive=false) и не очищать порожденные подпроцессы (AbandonProcessGroup=true) добьется цели:

<key>KeepAlive</key>
<false/>
<key>AbandonProcessGroup</key>
<true/>
1
ответ дан 12.12.2019, 10:35

Теги

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