Java 应用程序在Linux上的 延时自启

需求:
希望挂到Linux上的java程序可以在机器重启之后自动运行,而不是需要去手动启动

实现:

1. 编写重启脚本/apps/shells/test.sh

内容如下:

sleep 30 # 睡眠30秒

echo "==================启动myTest1服务=================="
cd /apps/projects/test/
./stop.sh #程序的停止脚本,具体内容可在本文附录查看
./startup.sh #程序的启动脚本,具体内容可在本文附录查看

echo "==================启动myTest2服务=================="
cd /apps/projects/test2/
./stop.sh
./startup.sh

2. 赋予权限

chmod +x /apps/shells/test.sh #需要是全局路径

3. 交给servcie管理

vim /etc/init.d/after.local (SuSE系统中的目录是这样,其他系统可能为 /etc/rd.d/rc.local需要自行检索)
添加内容:

# 引入java配置环境
JAVA_HOME=/usr/java/jdk1.8.0_281
CLASSPATH=.:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
# 后台启动程序的自启脚本
/apps/shells/test.sh &
*ps: &表示后台执行,启动日志不显示在控制台*

4. 参考文档

linux shell文件进行自启动-延时执行

5. 附录

startup.sh内容如下:

#!/bin/bash
echo starting application
# 配置文件中的参数动态加载
#################################
#应用端口配置
export SERVER_PORT=8180
#################################
# MYSQL配置
export MYSQL_IP=127.0.0.1
export MYSQL_PORT=3306
export MYSQL_USER=root
export MYSQL_PWD=root
export MYSQL_DB=fnpt
#################################
# 其他配置 
#################################

appName=test1
appJar=$appName".jar"
nohup java -jar $appJar >./$appName".log" 2>&1 &
echo $! > $appName".tpid"
echo $appName start success!

注意:只有配置文件中做如下写法才能在脚本里动态加载配置数据
在这里插入图片描述
stop.sh内容如下:

#!/bin/bash
appName=test1
tpid=`ps -ef|grep $appName|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Stopping' $appName '...'
    kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep $appName|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Kill' $appName 'Process!'
    kill -9 $tpid
else
    echo $appName 'Stoped Success!'
fi

restart.sh内容如下:

#!/bin/bash
echo Stopping application
source /apps/projects/test1/stop.sh
echo Starting application
source /apps/projects/test1/startup.sh
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值