使用Systemd开机启动管理jar包
在之前介绍过CENTOS下配置JAVA运行环境的两种方法
平日里测试jar包都直接java -jar xxx.jar 这样启动,如果要让其后台运行,也是使用nohup来跑
今天给介绍一个用centos服务的方式启动
假设我们的服务名称就叫lvtao
,要启动的也是一个叫lvtao.jar
包
sudo vim /etc/systemd/system/lvtao.service
写服务脚本
[Unit] Description=lvtao Service Documentation=https://lvtao.net After=network-online.target Wants=network-online.target [Service] Type=simple ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar /www/wwwroot/lvtao.net/lvtao.jar ExecStop=/bin/kill -s QUIT $MAINPID Restart=always StandOutput=syslog StandError=inherit [Install] WantedBy=multi-user.target
参数:
-Xms256m:为 JVM 启动时分配的内存,请按照服务器的内存做适当调整,512 M 内存的服务器推荐设置为 128,1G 内存的服务器推荐设置为 256,默认为 256。
-Xmx256m:为 JVM 运行过程中分配的最大内存,配置同上。
安装包的绝对路径,例如 /www/wwwroot/lvtao.net/lvtao.jar
提示:
如果你不是按照上面的方法安装的 JDK,请确保 /usr/bin/java 是正确无误的。另外,所有的路径要写绝对路径。
管理服务:
# 修改 service 文件之后需要刷新 Systemd sudo systemctl daemon-reload # 使 Halo 开机自启 sudo systemctl enable lvtao # 启动 Halo sudo service lvtao start # 重启 Halo sudo service lvtao restart # 停止 Halo sudo service lvtao stop # 查看 Halo 的运行状态 sudo service lvtao status
至于如何编写systemd服务可以查看opensuse的官方介绍,中文教程