systemd 可以管理普通用户身份运行的服务,参考 ArchLinux wiki,在 ~/.config/systemd/user/
目录下创建文件 foo.service:
[Unit]
Description=Foo Service
[Service]
WorkingDirectory=/home/xxx/foo
ExecStart=java -jar quarkus-app/quarkus-run.jar
Restart=always
RestartSec=2
[Install]
WantedBy=default.target
然后记得以 root 身份执行 loginctl enable-linger xxx
以使得 xxx 用户注销后,systemd --user
进程以及它管理的服务并不会退出。
管理普通用户的服务:
$ systemctl --user enable foo
$ systemctl --user status foo
$ systemctl --user restart foo
$ journalctl --user -u foo