起因
因为有一个web项目打包为了jar,而不是war,然后发现只有连着ssh在服务器上运行才有效果,所以才想着将jar包注册为服务。
关于systemd
systemd即system daemon,在Unix中常以“d”作为系统守护进程。与传统的system V相比,systemd采用了以下新技术:
- 采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能;
- 用Cgroups代替PID来追踪进程,以此即使是两次fork之后生成的守护进程也不会脱离systemd的控制。
具体实现
首先需要新建一个xxx.service的文件,然后填入以下内容
[Unit]
#描述
Description=xxx
#定义启动次序,表示当前unit在哪些unit之后启动
After=syslog.target
[Service]
ExecStart=/路径/java -jar /路径/xxx.jar
[Install]
WantedBy=multi-user.target
当某个service文件修改后需要重载一下配置文件
systemctl daemon-reload
后续命令
启动/停止/重启/查看状态
systemctl start/stop/restart/status xxx.service
设置开机自启
systemctl enable xxx.service
查看console log
journalctl -u xxx.service
journalctl -f -u xxx.service