我有一个python应用程序,它作为centos 7上的服务提供。 我在/ usr / lib / systemd / system中用我的项目名称创建了一个文件。并在上面写这些:
[Unit]
Description=My Script Service
After=multi-user.target
[Service]
Type=idle
ExecStart=/usr/bin/python3.6 /usr/src/python-project/sampleService-services/serverprotocol.py
[Install]
WantedBy=multi-user.target
之后:
$ sudo systemctl daemon-reload
$ sudo systemctl enable sampleService.service
$ sudo reboot
我可以使用以下命令启动,重新启动和停止该服务:
$ systemctl start sampleService.service
$ systemctl restart sampleService
$ systemctl stop sampleService
但是当我尝试使用以下命令重新加载它时:
$ systemctl reload sampleService
或
$ service sampleService reload
我收到此错误:
无法重新加载sampleService.service:重新加载作业类型不适用于unit basecore.service。 有关详细信息,请参见系统日志和“ systemctl status sampleService.service”。
是否有用于重新加载此pythonic服务的命令?!
如何在不重新启动服务的情况下重新加载我的服务?!
答案 0 :(得分:0)
在ExecStart=
行下,尝试添加
Restart=on-failure
RestartSec=10s
答案 1 :(得分:0)
要使systemctl reload ...
工作,您需要在单位(服务)文件中提供ExecReload=
行。一个常见的例子是:
ExecReload=/bin/kill -HUP $MAINPID
这需要您的程序捕捉到SIGHUP信号并对其采取行动。如果您的应用程序具有不同的机制来在运行时触发其配置的重新加载,请提供一些其他合适的命令来生成该触发器。