部署java项目为服务,开机自启动

第一步:编写sh脚本

在/usr/local/src/shs/stressTest目录下,新建两个脚本,start.sh和stop.sh

  • start.sh

#!/bin/sh
source /etc/profile
export PATH=$JAVA_HOME/bin:$PATH
#程序名
RUN_NAME="renren-fast.jar"

# jar 位置
JAVA_OPTS=/usr/local/src/java/project/renren-fast.jar
LOG_OPTS=/usr/local/src/java/project/stressTest.log

nohup java -jar $JAVA_OPTS >$LOG_OPTS 2>&1 &
echo "$RUN_NAME started success."
echo $! > /var/run/stressTest.pid

记住,一定要加上source /etc/profile,巨坑,不然,提示找不到java命令

  • stop.sh

#!/bin/sh
source /etc/profile
PID=$(cat /var/run/stressTest.pid)
kill -9 $PID

第二步:修改脚本的可执行权限

chmod +x start.sh
chmod +x stop.sh

第三步:建立服务

进入/etc/systemd/system目录,新建stressTest.service服务(stressTest是服务名)

[Unit]
Description=压测平台demo
after=network.target

[Service]
User=root
Group=root
Type=forking
KillMode=process
ExecStart=/bin/sh /usr/local/src/shs/stressTest/start.sh start
PrivateTmp=true

[Install]
WantedBy=multi-user.target


[Service]
User=root
Group=root
Type=forking
KillMode=process
ExecStart=/bin/sh /usr/local/src/shs/stressTest/start.sh start
PrivateTmp=true

[Install]
WantedBy=multi-user.target

第四步:新增服务的可执行权限:

chmod +x stressTest.service

第五步:执行一下命令

systemctl daemon-reload:重新加载某个服务的配置文件,如果新安装了一个服务,归属于 systemctl 管理,要是新服务的服务程序配置文件生效,需重新加载。
systemctl enable hello-service.service   #添加开机启动服务
systemctl start hello-service.service     # 启动服务
systemctl stop hello-service.service    #关闭服务
systemctl restart hello-service.service   # 重启服务
systemctl status hello-service.service    #查看服务状态
systemctl disable hello-service.service    #取消开机启动

你可能感兴趣的:(部署,linux)