在linux上启动、重启、查询、停止java服务脚本,并且设置定时任务自动执行

这篇具有很好参考价值的文章主要介绍了在linux上启动、重启、查询、停止java服务脚本,并且设置定时任务自动执行。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

启动的脚本

以下代码来源于另一位博主,在实践过程中需要设置定时任务,所以遇到一些问题,把没有写清楚的地方优化了一下。

#!/bin/bash
#这里可替换为你自己的执行程序,再更改启动方法的部分代码,其它地方无需更改
APP_NAME=manage.jar

#使用说明,用来提示输入参数
usage() {
    echo "Usage: sh 脚本名.sh [start|stop|restart|status]"
    exit 1
}

#检查程序是否在运行
is_exist(){
  pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
  #如果不存在返回1,存在返回0
  if [ -z "${pid}" ]; then
   return 1
  else
    return 0
  fi
}

#启动方法,这里更改自己的启动命令,java和APP_NAME需要指定自己的绝对路径,后面重定向的日志路径可以自己定义
start(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is already running. pid=${pid} ."
  else
    nohup /data/software/jdk1.8.0_221/bin/java -jar /data/www/$APP_NAME > /dev/null 2>> /data/www/logs/manage.log &
   date_time=`date +"%Y%m%d%H%M%S"`
    echo $date_time+"${APP_NAME} start success"
  fi
}

#停止方法
stop(){
  is_exist
  if [ $? -eq "0" ]; then
    kill -9 $pid
  else
    echo "${APP_NAME} is not running"
  fi
}

#输出运行状态
status(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is running. Pid is ${pid}"
  else
    echo "${APP_NAME} is NOT running."
  fi
}

#重启
restart(){
  stop
  start
}

#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
  "start")
    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  "restart")
    restart
    ;;
  *)
    usage
    ;;
esac

脚本运行的命令 

我们把上面的脚本复制到以下目录的脚本文件/data/www/shtools/startmanage.sh,执行命令可以得到不同的结果。

进入脚本目录
/data/www/shtools/startmanage.sh
3.1查看状态 bash startmanage.sh status
结果示例:manage.jar is running. Pid is 12841

3.2启动 bash startmanage.sh start
结果示例:manage.jar is already running. pid=12841 .-----------表示进程存在
20230707191016+manage.jar start success -----------------------表示启动成功

3.3停止  bash startmanage.sh stop

3.4重新启动 bash startmanage.sh restart
结果示例:20230707191154+manage.jar start success

设置定时任务

设置的三个定时任务运行脚本,
第一个是0 3 * * * bash /data/www/logtools/startplan-manage.sh restart >>/data/www/logs/restart.log是每天3点重启服务,
第两个是每分钟检查服务挂没挂,挂了就自动启动。

[root@localhost logtools]# crontab -l
0 3 * * * bash /data/www/shtools/startmanage.sh restart >>/data/www/logs/restart.log
* * * * * bash /data/www/shtools/startmanage.sh start 2>>/data/www/logs/start.log

注意事项 

nohup的启动命令必须要使用绝对路径的java和绝对路径的jar包,不然手动执行脚本会成功,但是定时任务执行会报错java命令找不到。

定时任务执行脚本中脚本的输出需要重定向到自己指定的文件,不然无法看到shell脚本输出了什么,所以在定时任务的执行命令后面有重定向。

nohup /data/software/jdk1.8.0_221/bin/java -jar /data/www/$APP_NAME > /dev/null 2>> /data/www/logs/manage.log &表示标准输出不输出,错误输出到日志文件manage.log中。

最上面的脚本需要改动的是两个地方,第一个是APP_NAME,第二个是启动方法那里的绝对路径。文章来源地址https://www.toymoban.com/news/detail-728888.html

到了这里,关于在linux上启动、重启、查询、停止java服务脚本,并且设置定时任务自动执行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Linux:将服务重启脚本加入CentO7的开机启动里

    我们的平台服务使用 docker 部署,使用 docker-compose 进行管理 平台部署到客户环境时,一小部分客户,使用自己机房或单独的服务器,并没有做断电保护,有时候这台服务器会断电重启 断电重启后,我们的平台服务要能自动拉起来,为客户正常提供服务 实现思路很简单,创建

    2024年02月11日
    浏览(11)
  • (18)不重启服务动态停止、启动RabbitMQ消费者

            我们在消费RabbitMQ消息的过程中,有时候可能会想先暂停消费一段时间,然后过段时间再启动消费者,这个需求怎么实现呢?我们可以借助RabbitListenerEndpointRegistry这个类来实现,它的全类名是org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry,通过这个类可以

    2024年02月09日
    浏览(9)
  • Linux下ElasticSearch7.9.2安装配置(包含服务器配置、启动停止脚本、开放端口和elasticsearch-head插件的使用)

    Linux下ElasticSearch7.9.2安装配置(包含服务器配置、启动停止脚本、开放端口和elasticsearch-head插件的使用)

    本文主要介绍Linux下ElasticSearch7.9.2安装,目前是介绍单节点的配置 应用 版本 说明 操作系统 centos7 稳定、高预测性、高管理性、高重复性的Linux平台 elasticsearch 7.9.2 es7.x的linux版本 jdk 8 本人使用JDK 8;ES建议使用JDK 11 启动的时候会有警告但是不会报错,可以忽略 此种方式可能比

    2024年02月08日
    浏览(17)
  • 如何一键启动、停止或重启运行在服务器内的幻兽帕鲁游戏服务进程?

    如何一键启动、停止或重启运行在服务器内的幻兽帕鲁游戏服务进程?

    如果你是用腾讯云轻量应用服务器一键部署的幻兽帕鲁服务器,那么可以在面板一键启动、停止或重启运行在服务器内的幻兽帕鲁游戏服务进程(注意并非对服务器整机进行操作),无需手动在服务器内部运行命令。 详细教程地址:https://docs.qq.com/doc/DQnBvck1Jb2Vud2NE

    2024年04月09日
    浏览(11)
  • [含完整代码]Linux使用.sh脚本自动部署(启动|停止|状态|日志)项目[超详细]

    [含完整代码]Linux使用.sh脚本自动部署(启动|停止|状态|日志)项目[超详细]

    个人博客: www.wdcdbd.com   我们在linux部署.jar项目时,都需要通过java -jar的形式来部署,每次都要手动停止,部署,这样用起来会很麻烦。所以,这篇文章就是自己通过.sh脚本一键 启动 , 停止 , 重启 , 查看状态 , 查看日志 。这样会方便一些。  将你的java项目放到你lin

    2024年01月19日
    浏览(12)
  • Docker 查询、停止、删除和重启容器

    docker 列出所有容器ID docker 查看所有运行容器 docker 查看正在运行容器 docker 停止指定的 container (容器) 温馨提示:删除 container (容器) 的镜像文件,必须先停止 container (容器) 运行 。 知识拓展:停止docker 所有容器(包含正在运行) container (容器) docker 删除指定的

    2024年02月03日
    浏览(50)
  • docker—启动、停止、重启容器实例

    docker—启动、停止、重启容器实例

    先查看已经暂停的容器实例信息 docker ps -a 通过 docker start xxx 启动容器 通过 docker ps 查看当前启动的容器 1、docker stop 此方式常常被翻译为优雅的停止容器 docker stop 容器ID或容器名 参数 -t:关闭容器的限时,如果超时未能关闭则用kill强制关闭,默认值10s,这个时间用于容器的

    2024年02月09日
    浏览(35)
  • Nginx基础常用命令,版本,启动,停止,重启等

    最近部署了nginx-1.18版本,常用命令记录如下。 1.启动nginx C:javanginx-1.18.0 start nginx 或 C:javanginx-1.18.0 nginx.exe 2.停止nginx C:javanginx-1.18.0 nginx.exe -s stop 或 C:javanginx-1.18.0 nginx.exe -s quit 注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息

    2024年02月03日
    浏览(17)
  • java -jar 启动服务后,关闭命令窗口后服务停止

    问题:当我们用java -jar命令启动服务后,只有一直保持Xshell的窗口开启且正常连接服务器时才能访问服务,当关闭命令窗口时,服务会停止运行 解决:使用nohup命令启动服务 nohup(no hang up):不挂起 只要通过nohup命令启动服务,服务会一直运行 1.安装nohup,查询nohup是否安装

    2024年02月12日
    浏览(18)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包