Я хочу, чтобы мой скомпилированный сервер apache2 запускался при загрузке моего сервера OpenSuse 12.3.
Я выполнил процедуру, указанную в Как мне запустить apache во время загрузки в Linux, а именно:
Создание файла /etc/init.d/apache2
Добавление в сервисы с
chkconfig - добавить apache2
Я вижу, что он указан в диспетчере уровней запуска YaST (не уверен в точном названии, так как мой дистрибутив на испанском языке) как
apache2 Yes*
Я так понимаю, это означает, что служба настроена на запуск при загрузке, но не работает, когда я проверяю.
Содержимое моего /etc/init.d/apache2:
#!/bin/bash
#
### BEGIN INIT INFO
# Provides: apache2
# Default-Start: 3 5
# Description: Controlar el servidor apache2
### END INIT INFO
/home/servidor/apache/bin/apachectl $@
Я попытался изменить права доступа к файлу, включить службу через systemd и почти все, что я нашел в Интернете, безрезультатно:
systemctl start apache2.service
systemctl enable apache2.service
chkconfig apache2 on
Любая помощь будет принята с благодарностью.
редактировать
Моя таможенная служба наконец заработала. После перезагрузки выполнил
journalctl -n
и понял, что, хотя служба выполнялась правильно после загрузки (путем ручного ввода в терминал), запустив ее в течение boot возвратил неудачный статус.
systemctl status apache2.service
показал проблему с закрытыми сокетами, поэтому я погуглил ошибку и, следовательно, изменил свой httpd.conf с
Listen 192.168.9.69:80
к
Listen *:80
Может быть, ошибка возникла из-за того, что в этот момент IP-адреса не были назначены? Во всяком случае, это решило ее.
Большое спасибо за интерес и время.
Прежде всего, /home/servidor/apache
не является подходящим путем для исполняемого файла на сервере. Использовать /usr/local
иерархия для локально скомпилированных пакетов. Это вариант по умолчанию, менять его не следует.
Что касается сценария инициализации, адаптируйте тот, который распространяется с вашим дистрибутивом к вашим потребностям. Просто скачайте RPM и извлеките /etc/init.d/apache2
файл.