Почему мой системный блок не запускается при перезагрузке сервера?

У меня возникают проблемы с получением файла системного блока systemd для правильной работы при перезагрузке сервера. Этот сервер представляет собой новую установку CentOS 7.0.1406. Я пытаюсь установить его с несколькими экземплярами Apache httpd. На старой установке CentOS у меня были экземпляры httpd, и я теперь пытаюсь перенести эти конфигурации на новый CentOS, который использует systemd.

Я могу включить службу, запустить ее, перезапустить и остановить ее без каких-либо проблем. Когда я перезагружаюсь, он говорит «Нет такого файла или каталога». Если я снова включу службу, все будет работать до следующей перезагрузки.

Сервисный файл:

[Unit] Description=Apache web server instance apache01 After=network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/data/apacheinstances/apache01/logs/httpd.pid ExecStart=/data/apacheinstances/apache01/bin/apachectl start ExecStop=/data/apacheinstances/apache01/bin/apachectl stop ExecReload=/data/apacheinstances/apache01/bin/apachectl reload PrivateTmp=true LimitNOFILE=infinity [Install] WantedBy=multi-user.target 

Как я включил его:

 $ sudo systemctl enable /data/apacheinstances/apache01/bin/apache01.service ln -s '/data/apacheinstances/apache01/bin/apache01.service' '/etc/systemd/system/multi-user.target.wants/apache01.service' ln -s '/data/apacheinstances/apache01/bin/apache01.service' '/etc/systemd/system/apache01.service' $ sudo systemctl status apache01 apache01.service - Apache web server instance apache01 Loaded: loaded (/data/apacheinstances/apache01/bin/apache01.service; enabled) Active: inactive (dead) 

Как я начал:

 $ sudo systemctl start apache01 $ sudo systemctl status apache01 apache01.service - Apache web server instance apache01 Loaded: loaded (/data/apacheinstances/apache01/bin/apache01.service; enabled) Active: active (running) since Wed 2014-10-08 14:37:56 PDT; 13s ago Process: 1740 ExecStart=/data/apacheinstances/apache01/bin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 1746 (httpd) CGroup: /system.slice/apache01.service +-1746 /usr/local/httpd-2.4.10-apache01/bin/httpd -f /data/apacheinstances/apache01/conf/httpd.conf -k start +-1747 /usr/local/sbin/cronolog /data/apacheinstances/apache01/logs/error_log-%Y%m +-1748 /usr/local/sbin/cronolog /data/apacheinstances/apache01/logs/access_log-%Y%m +-1749 /usr/local/httpd-2.4.10-apache01/bin/httpd -f /data/apacheinstances/apache01/conf/httpd.conf -k start +-1750 /usr/local/httpd-2.4.10-apache01/bin/httpd -f /data/apacheinstances/apache01/conf/httpd.conf -k start +-1751 /usr/local/httpd-2.4.10-apache01/bin/httpd -f /data/apacheinstances/apache01/conf/httpd.conf -k start Oct 08 14:37:56 server105 apachectl[1740]: Starting apache01: [ OK ] Oct 08 14:37:56 server105 systemd[1]: PID file /data/apacheinstances/apache01/logs/httpd.pid not readable (yet?) after start. Oct 08 14:37:56 server105 systemd[1]: Started Apache web server instance apache01. 

Как я перезапустил его:

 $ sudo systemctl restart apache01 $ sudo systemctl status apache01 apache01.service - Apache web server instance apache01 Loaded: loaded (/data/apacheinstances/apache01/bin/apache01.service; enabled) Active: active (running) since Wed 2014-10-08 14:38:40 PDT; 12s ago Process: 1836 ExecStop=/data/apacheinstances/apache01/bin/apachectl stop (code=exited, status=0/SUCCESS) Process: 1844 ExecStart=/data/apacheinstances/apache01/bin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 1850 (httpd) CGroup: /system.slice/apache01.service +-1850 /usr/local/httpd-2.4.10-apache01/bin/httpd -f /data/apacheinstances/apache01/conf/httpd.conf -k start +-1851 /usr/local/sbin/cronolog /data/apacheinstances/apache01/logs/error_log-%Y%m +-1852 /usr/local/sbin/cronolog /data/apacheinstances/apache01/logs/access_log-%Y%m +-1853 /usr/local/httpd-2.4.10-apache01/bin/httpd -f /data/apacheinstances/apache01/conf/httpd.conf -k start +-1855 /usr/local/httpd-2.4.10-apache01/bin/httpd -f /data/apacheinstances/apache01/conf/httpd.conf -k start +-1856 /usr/local/httpd-2.4.10-apache01/bin/httpd -f /data/apacheinstances/apache01/conf/httpd.conf -k start Oct 08 14:38:40 server105 apachectl[1844]: Starting apache01: [ OK ] Oct 08 14:38:40 server105 systemd[1]: PID file /data/apacheinstances/apache01/logs/httpd.pid not readable (yet?) after start. Oct 08 14:38:40 server105 systemd[1]: Started Apache web server instance apache01. 

Как я его остановил:

 $ sudo systemctl stop apache01 $ sudo systemctl status apache01 apache01.service - Apache web server instance apache01 Loaded: loaded (/data/apacheinstances/apache01/bin/apache01.service; enabled) Active: inactive (dead) since Wed 2014-10-08 14:39:44 PDT; 12s ago Process: 1940 ExecStop=/data/apacheinstances/apache01/bin/apachectl stop (code=exited, status=0/SUCCESS) Process: 1844 ExecStart=/data/apacheinstances/apache01/bin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 1850 (code=exited, status=0/SUCCESS) Oct 08 14:38:40 server105 apachectl[1844]: Starting apache01: [ OK ] Oct 08 14:38:40 server105 systemd[1]: PID file /data/apacheinstances/apache01/logs/httpd.pid not readable (yet?) after start. Oct 08 14:38:40 server105 systemd[1]: Started Apache web server instance apache01. Oct 08 14:39:44 server105 systemd[1]: Stopping Apache web server instance apache01... Oct 08 14:39:44 server105 apachectl[1940]: Stopping apache01: [ OK ] Oct 08 14:39:44 server105 systemd[1]: Stopped Apache web server instance apache01. 

Состояние после перезагрузки:

 $ sudo systemctl status apache01 apache01.service Loaded: not-found (Reason: No such file or directory) Active: inactive (dead) Oct 08 14:44:58 server105 systemd[1]: Cannot add dependency job for unit apache01.service, ignoring: Unit apache01.service failed to load: No such file or directory. 

Как я могу его возобновить и начать:

 $ sudo systemctl reenable /data/apacheinstances/apache01/bin/apache01.service rm '/etc/systemd/system/apache01.service' rm '/etc/systemd/system/multi-user.target.wants/apache01.service' ln -s '/data/apacheinstances/apache01/bin/apache01.service' '/etc/systemd/system/multi-user.target.wants/apache01.service' ln -s '/data/apacheinstances/apache01/bin/apache01.service' '/etc/systemd/system/apache01.service' $ sudo systemctl start apache01 $ sudo systemctl status apache01 apache01.service - Apache web server instance apache01 Loaded: loaded (/data/apacheinstances/apache01/bin/apache01.service; enabled) Active: active (running) since Wed 2014-10-08 14:52:20 PDT; 5s ago Process: 1737 ExecStart=/data/apacheinstances/apache01/bin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 1743 (httpd) CGroup: /system.slice/apache01.service +-1743 /usr/local/httpd-2.4.10-apache01/bin/httpd -f /data/apacheinstances/apache01/conf/httpd.conf -k start +-1744 /usr/local/sbin/cronolog /data/apacheinstances/apache01/logs/error_log-%Y%m +-1745 /usr/local/sbin/cronolog /data/apacheinstances/apache01/logs/access_log-%Y%m +-1746 /usr/local/httpd-2.4.10-apache01/bin/httpd -f /data/apacheinstances/apache01/conf/httpd.conf -k start +-1747 /usr/local/httpd-2.4.10-apache01/bin/httpd -f /data/apacheinstances/apache01/conf/httpd.conf -k start +-1748 /usr/local/httpd-2.4.10-apache01/bin/httpd -f /data/apacheinstances/apache01/conf/httpd.conf -k start Oct 08 14:52:20 server105 apachectl[1737]: Starting apache01: [ OK ] Oct 08 14:52:20 server105 systemd[1]: PID file /data/apacheinstances/apache01/logs/httpd.pid not readable (yet?) after start. Oct 08 14:52:20 server105 systemd[1]: Started Apache web server instance apache01. 

Я не уверен, почему он работает без проблем перед перезагрузкой, но потом не работает. Если я не сделаю повторное использование, я продолжаю получать ту же ошибку: «Нет такого файла или каталога».

Я попытался исследовать функции ведения журнала в systemd, чтобы определить, какой файл или каталог он не может найти, но нарисовал пробел.

Кто-нибудь еще испытывал такое поведение раньше?

One Solution collect form web for “Почему мой системный блок не запускается при перезагрузке сервера?”

Перед запуском всех сервисов необходимо загружать и анализировать, а ваш сервис недоступен на ранней стадии процесса загрузки, когда systemd анализирует все службы, поскольку он находится на другом разделе.

Чтобы решить эту проблему, либо сохранить локальные службы в /etc/systemd/system/ либо сделать пакет для вашего дистрибутива, и поместить их в /usr/lib/systemd/system/

  • dhcpcd не может запускаться при загрузке
  • Как запустить службы, использующие сеанс D-Bus?
  • «Завершение работы выполняется ...» при выключении
  • Не удается запустить службу mysql
  • Suspend больше не работает после обновления до xubuntu 15.10
  • Как создать файл systemd для установки тома при загрузке?
  • Возможно ли, чтобы пользователи debian подключались к сети через systemd-networkd?
  • Универсальный способ выхода из терминала через dbus
  • Запуск состояния systemctl vs systemctl
  • vmware.service зависает во время выключения
  • Почему systemctl изолирует multi-user.target только один раз?
  • Linux и Unix - лучшая ОС в мире.