最重要的就是服务文件的编写
cd /etc/systemd/system vi myproject.service
[Unit] Description=myproject service [Service] WorkingDirectory=/home/test/ PrivateTmp=true Restart=always Type=simple ExecStart=/usr/local/java/jdk1.8.0_231/bin/java -Xmx1024m -Xms512m -Xss256k -jar /home/test/myproject-0.0.1-SNAPSHOT.jar ExecStop=/usr/bin/kill -TERM $MAINPID [Install] WantedBy=multi-user.target
Description——描述信息
WorkingDirectory——工作目录
PrivateTmp——是否使用私有的tmp目录
Restart——如果不是通过systemctl stop来停止服务,重启服务
Type——配置此服务单元的进程启动类型
ExecStart——启动此服务时执行的带有参数的命令
ExecStop——停止服务执行的命令
WantedBy——单元被允许运行需要的弱依赖性单元
编写好service基本就算成了
重新载入systemd,扫描新的或有变动的单元
systemctl daemon-reload
启动或停止服务
systemctl start myproject systemctl stop myproject
设置是否开机启动
systemctl enable myproject systemctl disable myproject
注意事项:
启动命令不能直接写java -jar,需要绝对路径,不然会报错Failed to start mypreject.service: Unit is not loaded properly: Invalid argument.
停止命令不能使用kill -15,会报错Failed to stop myproject.service: Unit myproject.service not loaded.
参考
Service unit configuration



