Eu tenho um aplicativo escrito em python que eu usei muitas vezes com o CentOS 6, e agora estou configurando-o no CentOS 7. Eu criei um arquivo de serviço systemd que contém o seguinte:
#
# Systemd unit file for Application
#
[Unit]
Description=Application Daemon
[Service]
User=svc_app
Group=svc_app
Type=forking
ExecStart=/usr/bin/python /apps/application/run_app.py --daemon --pidfile=/var/run/apps/application.pid
ExecStop=pkill --pidfile /var/run/apps/application.pid
PIDFile=/var/run/apps/application.pid
[Install]
WantedBy=multi-user.target
Se eu executar systemctl start application.service
, o aplicativo será iniciado. Se eu executar systemctl stop application.service
, o aplicativo será interrompido. Se eu executar systemctl status application.service
, obtenho o status correto.
No entanto, estou passando por duas mensagens de log que são preocupantes e não sei por que estou recebendo essas mensagens.
Jun 10 18:36:43 centos7-test systemd[1]: Starting Application Daemon...
Jun 10 18:36:44 centos7-test systemd[1]: PID file /var/run/apps/application.pid not readable (yet?) after start.
Jun 10 18:36:44 centos7-test systemd[1]: Started Application Daemon.
O aplicativo é iniciado, mas a mensagem application.pid not readable
me preocupou. Eu deveria estar preocupado com isso, ou posso ignorá-lo? Meu aplicativo está criando com êxito um arquivo pid que contém o pid da instância em execução, então sei que está funcionando corretamente.
O segundo problema é quando executo systemctl stop application.service
.
Jun 10 18:49:33 centos7-test systemd[1]: Stopping Application Daemon...
Jun 10 18:49:43 centos7-test systemd[1]: Stopped Application Daemon.
Jun 10 18:49:43 centos7-test systemd[1]: [/etc/systemd/system/application.service:14] Executable path is not absolute, ignoring: pkill --pidfile /var/run/apps/application.pid
Jun 10 18:49:43 centos7-test systemd[1]: [/etc/systemd/system/application.service:14] Executable path is not absolute, ignoring: pkill --pidfile /var/run/apps/application.pid
Jun 10 18:49:54 centos7-test systemd[1]: [/etc/systemd/system/application.service:14] Executable path is not absolute, ignoring: pkill --pidfile /var/run/apps/application.pid
Agora o serviço está morto, o pidfile desapareceu. Então parou, mas essas mensagens me preocupam. O que está acontecendo, ou onde mais posso procurar? Existe algo diferente de pkill que eu deveria usar para parar meu aplicativo python? no CentOS 6 eu usei killproc, mas isso não parece estar disponível no CentOS 7 por padrão então eu mudei para o pkill.
Obrigado antecipadamente!