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

server/2024/11/19 22:41:45/

目录

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=0proc_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.outproc_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

http://www.ppmy.cn/server/143312.html

相关文章

基于 Python Django 的二手房间可视化系统分析

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

小程序-基于java+SpringBoot+Vue的实习生管理系统设计与实现

项目运行 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境&#xff1a…

使用GDB或Delve对已经运行起来的Go程序进行远程调试

同步发布在我的博客,欢迎来点赞。 使用 GDB 或 Delve 对已经运行起来的 Go 程序进行远程调试 使用 GDB 或 Delve 对已经运行起来的 Go 程序进行远程调试 背景 Java 程序可以很方便地通过 jdwp 参数指定一个对外端口进行远程调试,如 java \ -agentlib…

菜鸟驿站二维码/一维码 取件识别功能

特别注意需要引入 库文 ZXing 可跳转: 记录【WinForm】C#学习使用ZXing.Net生成条码过程_c# zxing-CSDN博客 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static System.Net.…

Android WMS概览

WMS(WindowManagerService)是 Android 系统的核心服务,负责管理应用和系统的窗口,包括窗口的创建、销毁、布局、层级管理、输入事件分发以及动画显示等。它通过协调 InputManager 和 SurfaceFlinger 实现触摸事件处理和窗口渲染&a…

单片机_day4_串口通信

目录 1. 通信是什么 2. 电平信号和差分信号 3. 通信的分类 3.1 时钟信号划分 3.1.1 同步通信 3.1.2 异步通信 3.2 通信方式划分 3.2 通信方向划分 4. USART和UART(串口通信) 4.1 串口通信协议 4.2.1 TTL 4.2.3 RS485 4.3 三种电平协议下串口…

蓝桥杯第22场小白入门赛

刚好牛客周赛和蓝桥杯周赛时间撞了,于是毅然决然选择了打牛客,结局是本蒟蒻被牛客薄纱/(ㄒoㄒ)/~~ 好吧,然后第二天就来水一水蓝桥杯了(bushi),小白入门赛和前几次一样,6道题只能写5道(什么时候…

RHCE---第六章:DNS域名解析服务器

文章目录 第六章:DNS域名解析服务器产生原因作用:连接方式因特网的域名结构拓扑:分类 域名服务器类型划分 DNS域名解析过程分类:过程分析 搭建DNS域名解析服务器概述安装软件bind服务中三个关键文件主配置文件分析区域配置文件作用…