httpd não está iniciando porque / run / httpd está faltando

2

link

Minha pergunta é: por que o / run / httpd está sendo excluído. Eu não estou apagando o diretório.

Executando o httpd-2.4.6-18.el7.centos.x86_64 a partir do repositório base do CentOS

    
por SamCulley 18.11.2014 / 09:07

1 resposta

2

Eu tive um problema semelhante, e acabou por ser um problema do systemd ... não como em um problema com o systemd, mas como no meu não entender como trabalhar com ele.

Então, /run costumava estar em /var/run e costumava ser mais ou menos persistente (se eu entendi corretamente). Agora, muitas vezes é em um sistema de arquivos fstmp, portanto, uma reinicialização remove tudo em /run . Isso pode ser corrigido informando ao systemd que o serviço precisa de um /run dir:

Meus arquivos tomcat.service falharam assim:

[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=forking

Environment=CATALINA_PID=/run/tomcat/tomcat.pid
Environment=CATALINA_HOME=/usr/share/tomcat8/
Environment=CATALINA_BASE=/usr/share/tomcat8/
Environment='CATALINA_OPTS=-server -XX:+UseParallelGC -Dsun.net.inetaddr.ttl=30'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/usr/share/tomcat8/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID
PIDFile=/run/tomcat/tomcat.pid
SuccessExitStatus=143

User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target

Funcionou assim:

[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=forking

Environment=CATALINA_PID=/run/tomcat/tomcat.pid
Environment=CATALINA_HOME=/usr/share/tomcat8/
Environment=CATALINA_BASE=/usr/share/tomcat8/
Environment='CATALINA_OPTS=-server -XX:+UseParallelGC -Dsun.net.inetaddr.ttl=30'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

RuntimeDirectory=tomcat
RuntimeDirectoryMode=775
ExecStart=/usr/share/tomcat8/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID
PIDFile=/run/tomcat/tomcat.pid
SuccessExitStatus=143

User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target

Eu só precisava fazer o que precede, pois nós "rodamos nosso próprio" tomcat para obter uma nova versão dele.

No entanto, algumas vezes tivemos o mesmo erro com o apache, mas com uma causa diferente: Aparentemente, o problema se resumiu ao fato de que ligamos a um servidor ldap antes de instalar o httpd, e O servidor ldap tem um usuário e um grupo do apache. Quando os scripts de instalação do apache viram o usuário e o grupo, ele não criou o usuário e o grupo local. No entanto, o usuário e grupo ldap, às vezes, não estariam disponíveis (rede lenta?) Quando um serviço systemd-tmpfiles-setup.service é executado no momento da inicialização. Esse serviço é uma maneira diferente de criar o diretório de tempo de execução ... Então forçamos um usuário e um grupo do apache local (com o mesmo uid / gid listado no ldap), e tudo é dourado.

Eu não sou de forma alguma um expert em nada disso, estou documentando principalmente o que nosso cara mais velho encontrou ao tentar orquestrar aplicativos apache / tomcat com o Puppet. Espero que isso ajude alguém.

Há outro post relacionado a este: O diretório PidFile do Apache é removido a cada inicialização

    
por 06.05.2016 / 01:35