Java服务配置开机自启-CentOS 7

创建开始和结束脚本

在你的jar目录下创建两个脚本

touch start.sh
chmod +x start.sh

touch stop.sh
chmod +x stop.sh

这是启动java服务和停止java服务的两个脚本,具体命名可以自己写自己的
start.sh内容

#!/bin/bash

# 这里是JDK安装的环境变量,自己改成自己的路径即可
export JAVA_HOME=/usr/jdk1.8.0_211
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

echo "************ KILL Java Service  Will  Begin **************"
#得到对应服务的进程号 关闭tomcat
str=`ps -ef | grep xxxxx你的jar文件xxxxx.jar | grep -v "grep"|awk '{print $2}'`
kill -9 $str
if [ "$?" -eq 0 ]; then
    echo "killed pid is "$str
    echo "kill success"
else
    echo "kill failed"
fi
echo "************ KILL Java Service  Will  End**************"

nowDate=`date +"%Y-%m-%d"`

# 跳转到jar存放的目录
cd /xx/xx/xxxx
# 执行挂起命令
nohup java -jar xxxxx你的jar文件xxxxx.jar &



# 跳转到jar存放的目录
cd /xx/xx/xxxx
#休眠5秒自动删除nohup.out文件
sleep 5
rm -rf nohup.out
nowstr=`ps -ef | grep  personloger-boot-oa-0.0.1-SNAPSHOT.jar  | grep -v "grep"|awk '{print $2}'`
#打印出现在新的进程号
echo "now pid is "$nowstr
echo "************ Personloger-OA is  Running... **************"

stop.sh 的内容

#!/bin/bash

echo "************ KILL Java Service  Will  Begin **************"
#得到对应服务的进程号 关闭tomcat
str=`ps -ef | grep xxxxx你的jar文件xxxxx.jar | grep -v "grep"|awk '{print $2}'`
kill -9 $str
if [ "$?" -eq 0 ]; then
    echo "killed pid is "$str
    echo "kill success"
else
    echo "kill failed"
fi
echo "************ KILL Java Service  Will  End**************"

注意:一定要给start和stop进行权限修改 chmod +x xxx.sh

编写注册服务

vim /usr/lib/systemd/system/somejar.service

名称自定义

Description=可以自定义描述
After=network.target  
 [Service]
Type=forking
ExecStart=刚刚写的那个start #启动服务脚本的绝对路径
ExecStop=刚刚写的那个stop #停止服务脚本的绝对路径.
PrivateTmp=true
[Install]
WantedBy=multi-user.target

将服务设为开机启动

systemctl enable somejar.service
# 设置完后重启
reboot

常用命令

systemctl start somejar.service #启动 服务
systemctl stop somejar.service  #停止 服务
systemctl status somejar.service  #查看 服务当前的运行状态

systemctl enable somejar.service  #开机启动 服务
systemctl disable somejar.service  #取消开机启动 服务
systemctl list-unit-files;   #查看当前服务(是否开机启动等)状态
Linux系统 文章被收录于专栏

主要应对运维化变成,对服务器的研究与学习,个人侧重CentOS开源免费系统

全部评论

相关推荐

投递美团等公司10个岗位
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务