CentOS 6で何度も使用したPythonで書かれたアプリケーションがあり、CentOS 7で設定しています。次の内容でsystemdサービスファイルを作成しました。
#
# 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
を実行するとsystemctl start application.service
アプリケーションが起動します。を実行するとsystemctl stop application.service
アプリケーションが停止します。を実行するとsystemctl status application.service
正しい状態が表示されます。
しかし、ログメッセージに関連する2つのメッセージを受信しましたが、なぜこれらのメッセージが受信されるのかわかりません。
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.
アプリケーションが起動しますが、メッセージがapplication.pid not readable
心配です。この問題に興味があるのか、それとも無視しても構いませんか?私のアプリケーションが実行中のインスタンスのpidを含むpidファイルを正常に作成したので、正常に動作していることがわかります。
第二の問題は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
これでサービスが終了し、pidfileが消えました。だから停止しましたが、このメッセージが心配です。何が起こっていますか?それともどこを見ることができますか? Pythonアプリケーションを停止するには、pkill以外のものを使用する必要がありますか? CentOS 6ではkillprocを使用しましたが、CentOS 7ではデフォルトでは使用できないようで、代わりにpkillを使用しました。
よろしくお願いします!