最重要的就是服务文件的编写
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.