准备启动jar包,app.jar放入指定目录。
一、命令启动
1、启动命令
java -jar app.jar
2、后台运行
nohup java -jar app.jar >/dev/null 2>&1 &
加入配置参数命令
nohup java -Xms512M -Xmx512M -jar app.jar --server.port=9080 spring.profiles.active=prod >nohup.out 2>&1 &
随着配置参数越来越多,可创建启动脚本一键启动。
二、脚本启动
1、简单脚本
vi start.sh
拷贝一下内容
#!/bin/bash#自定义
RESOURCE_NAME=test-server
SERVER_PORT=8080#停止服务
PID=$(ps -ef | grep $RESOURCE_NAME | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
thenecho $RESOURCE_NAME Application is already stopped
elsekill $PIDecho $RESOURCE_NAME Application stopped successfully pid = $PID
fi#不输出启动日志
nohup java -jar $RESOURCE_NAME.jar \
--server.port=$SERVER_PORT \
--spring.profiles.active=prod \
>/dev/null 2>&1 &#不输出日志
#>/dev/null 2>&1 &
#输出错误日志
#>/dev/null 2>nohup_err.out &
#输出全部日志
#>nohup.out 2>&1 &echo $RESOURCE_NAME Application started successfully
脚本授权
chmod 775 start.sh
2、升级脚本
vi app.sh
拷贝一下内容
#!/bin/sh
# ./app.sh start 启动 stop 停止 restart 重启 status 状态
AppName=app-server.jar
#应用端口
SERVER_PORT=8080
# JVM参数
JVM_OPTS="-Dname=$AppName -Duser.timezone=Asia/Shanghai -Xms512m -Xmx512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"if [ "$1" = "" ];
thenecho -e "\033[0;31m 未输入操作名 \033[0m \033[0;34m {start|stop|restart|status} \033[0m"exit 1
fiif [ "$AppName" = "" ];
thenecho -e "\033[0;31m 未输入应用名 \033[0m"exit 1
fifunction start()
{PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`if [ x"$PID" != x"" ]; thenecho "$AppName is running..."elsenohup java $JVM_OPTS -jar $AppName\--server.port=$SERVER_PORT \--spring.profiles.active=mysql-test \--jasypt.encryptor.password=123456 \> /dev/null 2>&1 &echo "Start $AppName success..."fi
}function stop()
{echo "Stop $AppName"PID=""query(){PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`}queryif [ x"$PID" != x"" ]; thenkill -TERM $PIDecho "$AppName (pid:$PID) exiting..."while [ x"$PID" != x"" ]dosleep 1querydoneecho "$AppName exited."elseecho "$AppName already stopped."fi
}function restart()
{stopsleep 2start
}function status()
{PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l`if [ $PID != 0 ];thenecho "$AppName is running..."elseecho "$AppName is not running..."fi
}case $1 instart)start;;stop)stop;;restart)restart;;status)status;;*)esac
3、开机启动
方式一
1、启动脚本拷贝至/etc/rc.d/init.d目录
注:需要把启动脚本中的路径都修改成绝对路径
2.给脚本app-server-auto.sh和jar包app-server.jar 添加权限
sudo chmod +x /etc/init.d/app-server-auto.sh
sudo chmod +x /home/xxx/app-server.jar
3.添加到chkconfig 并把chkconfig作为系统服务 然后设置开机自启
#添加为系统服务
sudo chkconfig --add app-server-auto.sh
#设置为开机启动
sudo chkconfig app-server-auto.sh on
# 启动服务 查看脚本是否正确
sudo service app-server-auto.sh start
方式二
1、编辑/etc/rc.d/rc.local文件
vi /etc/rc.d/rc.local
2、拷贝以下内容
source /etc/profile && cd /home/hello/application/app-server && ./start.sh
重启机器就可以测试了
三、注册服务
1、创建服务目录
#创建目录
mkdir /var/app
2、创建应用启动用户并授权
#创建组
getent group app|| groupadd -r app
#创建用户
getent passwd app || useradd -r -d /opt -s /bin/nologin -g app app
3、更改文件夹权限
chown -R app:app /var/app
4、注册应用服务
在/usr/lib/systemd/system目录下增加app.service,目录必须是绝对目录
vi /usr/lib/systemd/system/app.service
拷贝以下内容
[Unit]
Description=App-server description
After=syslog.target[Service]
User=app
Group=appExecStart=/usr/java/jdk1.8.0_202/bin/java -Xms512M -Xmx512M -jar /var/app/app-server.jar
SuccessExitStatus=143[Install]
WantedBy=multi-user.target
刷新命令
systemctl daemon-reload
5、管理命令
#配置开机启动
systemctl enable app
#删除开机启动
systemctl disable app
#启动
systemctl start app
#停止
systemctl stop app
#重启
systemctl restart app
查看启动状态
systemctl status app
#刷新服务
systemctl daemon-reload
#查看日志
journalctl -u springboot.service
推荐一个免费的pdf转换网站,包含pdf转word、pdf拆分等功能。
PDF转换网站http://test.aipaca-cbec.com/index