CentOS 7 systemd 服务文件(运行 python 脚本)工作,但记录错误?

CentOS 7 systemd 服务文件(运行 python 脚本)工作,但记录错误?

我有一个用 python 编写的应用程序,我在 CentOS 6 上使用过多次,现在正在 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,我会得到正确的状态。

但是,我遇到了两条令人担忧的日志消息,并且不确定为什么会收到它们。

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也消失了。所以它就停止了,但这些消息让我担心。发生了什么事,或者我还能在哪里查看?除了 pkill 之外,我还应该使用其他东西来停止我的 python 应用程序吗?在 CentOS 6 上我使用了killproc,但默认情况下在 CentOS 7 中似乎不可用,所以我改用了 pkill。

提前致谢!

相关内容