文件更改时如何重新启动Systemd服务。我有一个Java服务,当任何jar文件发生更改时,我都想重新加载该服务。
这是我的设置:
服务
[Unit]
Description=srv 0.1: Service's description
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/srv
ExecStart=/opt/srv/bin/srv
User=root
Group=root
[Install]
WantedBy=multi-user.target
路径
[Path]
PathModified=/opt/srv/lib/
我还尝试使用PathChanged
和使用文件而不是目录。
当我安装了服务,我执行:sudo systemctl daemon-reload
和 sudo systemctl enable srv
谢谢!
看来,如果您将其命名为与服务(带有.path)相同的名称,则路径文件将指向同一服务:freedesktop.org/software/systemd/man/systemd.path.html但是...我不知道如果它仅启动服务或什至在已经运行时重新启动
—
干扰了
据我从文档中了解到,
—
米哈尔Politowski
srv.path
它只能做的等效操作systemclt start srv.service
,因此要自动重启,您将需要另一个服务,该服务在启动时会重启您的服务。
你需要启动它
—
迈克尔D.
systemctl start srv.path
-而要把它开始启动systemctl preset srv.path
path
单元仅对激活(启动)其他单元有用。在这里,您可以srv-restart.path
使用PathChanged=/opt/srv/lib/
和srv-restart.service
一起创建ExecStart=systemctl restart srv.service
。