第一步需要一个控制java应用启动,停止,重启的脚本,脚本内容如下,我是springboot应用,其他的可以根据情况改写.
#!/bin/bash
APP_NAME=/data/oa/start-2.0.jar
#执行命令有误时,提示使用说明参数
usage() {
echo "Usage: sh eureka.sh [start|stop|restart|status]"
exit 1
}
#检查程序是否已经在运行
is_exist(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
#启动服务
start(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is already running. pid=${pid} ."
else
cd /data/oa
nohup java -Xms128m -Xmx512m -Dloader.path=/data/oa/lib -jar /data/oa/start-2.0.jar --spring.config.local=/data/oa/application.yml > /data/oa/dwoa.log 2>&1 &
fi
}
#停止服务
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
else
echo "${APP_NAME} is not running"
fi
}
#输出服务运行状态
status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is NOT running."
fi
}
#重启服务
restart(){
stop
start
}
#根据输入参数,选择执行对应的方法,不输入则执行使用说明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac
将以上脚本随便命名一下,比如我这边命名为oa.sh,放到项目文件夹;
第二步,给这个文件可执行权限:chmod a+wrx -R oa.sh
第三步,将启动脚本注册为系统服务,这样就可以在开机时候自动启动了.
1.cd /etc/systemd/system/
2.nano oa.service #创建一个名为oa的服务.
3.输入以下配置,注意修改 ExecStart,ExecReload,ExecStop中的启动脚本的路径
[Unit]
Descrip tion=hcoa Web Server
After=network.target
[Service]
Type=forking
ExecStart=/data/oa/oa.sh start
ExecReload=/data/oa/oa.sh restart
ExecStop=/data/oa/oa.sh stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
4.保存并关闭文件(在nano中按Ctrl+X,然后按Y确认保存)。
5.加载配置并将oa服务设置为enable启用状态(开机会自动启动该服务)
systemctl daemon-reload #重载系统服务配置
systemctl enable oa #开机启动
6.后面就可以直接使用服务方式启动oa服务了
service oa restart
service oa stop
service oa start
7.注意配置中的,一下三项配置,要根据情况去修改。
ExecStart=/data/oa/oa.sh start 代表启动命令
ExecReload=/data/oa/oa.sh restart 代表重启命令
ExecStop=/data/oa/oa.sh stop 代表停止命令
第四步,还是不会的话,可以私信联系我协助.