Java
在关闭运行 Lubuntu 20.04.1 的 PC 时,我使用以下 systemd 服务正常关闭程序。脚本会/usr/local/bin/pre-shutdown
搜索所有正在运行的Java
程序并终止它们。
[Unit]
Description=Kills some programs that prevent proper (fast) shutdown
Requires=sddm.service
After=sddm.service
[Service]
Type=oneshot
RemainAfterExit=true
ExecStop=/usr/local/bin/pre-shutdown
[Install]
WantedBy=sddm.service
sddm
使用脚本停止服务时,systemctl stop sddm
会找到程序并将其终止(所有已注册的关机挂钩都会运行)。但如果我使用shutdown now
或reboot
其他某个进程关闭 PC,则似乎会在脚本运行之前终止 Java 程序(没有运行关机挂钩),因为它找不到任何正在运行的Java
程序。
我需要在服务定义中进行哪些更改才能使脚本在Java
程序被终止之前运行,即使在系统关闭时(而不仅仅是 sddm 停止)。
在 Lubuntu 14.04 上我们遇到了同样的问题,并能够通过使用pre-stop
脚本停止程序来解决它etc/init/lightdm.conf
,但不幸的是只有 支持upstart
。