非root用户使用systemd
需要root用户执行
sudo loginctl enable-linger username
将用户的服务长驻
以下是非root用户的操作
创建用户的服务
mkdir ~/.config/systemd/user
cd ~/.config/systemd/user
vim test.service
编辑 test.service
[Unit]
AssertPathExists=/home/ghost/ghost
[Service]
WorkingDirectory=/home/ghost/ghost
Environment=GHOST_NODE_VERSION_CHECK=false
ExecStart=/usr/bin/npm start --production
Restart=always
PrivateTmp=true
NoNewPrivileges=true
[Install]
WantedBy=default.target
启用 test.service
systemctl --user enable test.service
查看 test.service 状态
systemctl --user status test.service
启动 test.service
systemctl --user start test.service
查看日志
journalctl -n -f -u test
-n 表示 返回最新的日志
-f 表示 持续显示最新的日志,类似 tail -f
-u 表示只显示哪个service的日志
参考:
https://www.brendanlong.com/systemd-user-services-are-amazing.html