Linux用systemd挂常驻应用很方便,简单记录下使用笔记。
参考的是How To Run Java Jar Application with Systemd on Linux,其中守护了一个Java Jar程序。
创建单独的用户(可以省略)
理论上不创建单独用户可以用,只要有软件和文件的执行的权限就行。
1 2 3 4 5 6 7 8 9 10 11 12 13
| # 创建一个组
sudo groupadd -r appmgr
# 创建一个用户 # -r 系统账户 # -s /bin false 没有登陆shell # -g appmgr 加入组
sudo useradd -r -s /bin/false -g appmgr jvmapps
# 查看用户 id jvmapps
|
添加服务
创建一个服务文件。
sudo vim /etc/systemd/system/myapp.service
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| [Unit] Description=Manage Java service
# 下面指定路径、命令和用户,根据自己的命令修改。 # 命令记得带上bin文件的全部路径,比如下面的/bin/java [Service] WorkingDirectory=/opt/prod ExecStart=/bin/java -Xms128m -Xmx256m -jar myapp.jar User=jvmapps Type=simple Restart=on-failure RestartSec=10
[Install] WantedBy=multi-user.target
|
完成后还要修改文件夹路径的权限。
sudo chown -R jvmapps:appmgr /opt/prod
使修改生效
1 2 3 4 5 6 7 8 9
| sudo systemctl daemon-reload
sudo systemctl start myapp.service
# 查看app状态,按q退出 systemctl status myapp
# 如果状态fail了,通过下方的指令看日志 journalctl -u myapp -b
|
补充命令
1 2 3 4 5 6 7 8 9 10 11
| # 重启 systemctl restart myapp
# 停止 systemctl stop myapp
# 停止守护 systemctl disable myapp
# 开启守护 systemctl enable myapp
|