学习笔记023——Ubuntu中设置Java项目的 jar 包自启动

目录

1、设置 crontab 定时任务

2、定时脚本 startJar.sh内容

3、查看jar包进程

4、如何杀死进程


背景:有个需求,Ubuntu服务器中,虽有Java环境,但是没有tomcat。

想要运行jar包,只能通过java -jar命令了。

但是我希望当Java服务停止,或者服务器重启时,我的java服务能够尝试自启动。

思路:通过Ubuntu自带的crontab,来定时运行我手动写的守护脚本不就好了吗?

说干就干,上代码。

1、设置 crontab 定时任务

## root用户下执行(本人使用的是root用户)
sudo crontab -e

## 添加定时任务(每秒执行下/opt/ys 下面的 startJar.sh 脚本 )
*/1 * * * * sh /opt/ys/startJar.sh
## 查看确认下任务

## 保存退出

查看定时任务:

crontab -l

2、定时脚本 startJar.sh内容

#!/bin/sh
chmod 777 /opt/ys/cron.log

# jar包所在目录
proc_dir="/opt/ys"

# jar包名字
proc_name="demo.jar"

# 日志文件名
file_name="cron.log"
pid=0

proc_num() 
{
        num=`ps -ef | grep $proc_name | grep -v grep | wc -l`
        return $num
}
 
proc_id()
{
        pid=`ps -ef | grep $proc_name | grep -v grep | awk '{print $2}'`
}
 
proc_num
number=$?
echo $number
#echo ${pid}, `date` >> $proc_dir/$file_name      # 将新进程号和重启时间记录
if [ $number -eq 0 ]                                    # 判断进程是否存在
then 
        cd /opt/ys; nohup /opt/jdk1.8.0_321/bin/java -jar demo.jar > /opt/ys/catalina.out
        proc_id                                         # 获取新进程号
        echo "detected demo down, restart..." >> $proc_dir/$file_name 
        echo ${pid}, `date` >> $proc_dir/$file_name      # 将新进程号和重启时间记录
fi

注意:文件中的  /opt/jdk1.8.0_321/bin/java   要写成你自己的java目录!!!

3、查看jar包进程

# 例如本人的jar包名字是:sh_syn_service.jar
ps auxwww | grep sh_syn_service.jar

4、如何杀死进程

# kill -9 进程号   
# 例如本人的进程号是8430
kill -9 8430
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值