编写Shell脚本监控服务(jar)运行状态

当编写Shell脚本来监控服务的运行状态时,可以使用如下的脚本代码:

#!/bin/bash

# 获取进程ID
PID=$(ps -ef | grep Watcher-1.0-SNAPSHOT.jar | grep -v grep | awk '{print $2}')
APP_NAME=Watcher-1.0-SNAPSHOT.jar

# 判断进程是否存在
if [[ -z $PID ]]; then
  echo "Watcher-1.0-SNAPSHOT.jar is not running."
  # 如果进程不存在,则启动服务
  nohup java -jar -Xms512m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError $APP_NAME &
  echo "Watcher-1.0-SNAPSHOT.jar Starting"
else
  echo "Watcher-1.0-SNAPSHOT.jar is running."
fi

这段脚本的功能是检测服务的运行状态,如果服务未在运行,则会启动服务。现在让我们来详细解释每个步骤:

  1. 获取进程ID:通过ps命令结合grep指令来查找运行中的服务进程,并使用awk指令获取进程ID。
  2. 设置服务名称:将服务的名称赋值给变量APP_NAME,以便后续使用。
  3. 判断进程是否存在:使用-z选项判断进程ID是否为空,即服务是否在运行中。如果进程ID为空,则说明服务未在运行。
  4. 启动服务:如果服务未在运行中,则使用nohup命令启动Java服务,并加上一些Java虚拟机的配置,如初始化堆大小和最大堆大小,并在内存不足时导出堆转储文件。
  5. 输出提示信息:无论服务是否启动,都会输出相应的提示信息。

加入crontab每十分钟检查一次:

*/10 * * * * /bin/bash /home/services/watcher/monitor.sh >> /home/services/watcher/nohup.out 2>&1

请注意,你可以根据实际需求对脚本进行修改。此脚本仅提供了一个示例,你可以根据自己的具体情况进行调整

  1. Watcher-1.0-SNAPSHOT.jar,不要直接复制,这是我自己本地的jar包,你需要把它全部替换成自己的jar包名。
  2. 启动命令根据自己想法或者公司要求进行修改或替换。
  3. crontab根据自己实际情况修改文件地址。

希望这篇博客能对你有所帮助!若有其他问题,欢迎继续咨询,祝您生活愉快。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Windows服务器运行jar包,需要执行以下步骤: 1. 安装Java环境:首先需要在服务器上安装Java环境。可以从Oracle官网下载Java开发工具包(JDK),然后按照安装向导进行安装。 2. 下载jar包:将需要运行jar包下载到服务器上的某个目录下。 3. 打开命令行界面:在Windows操作系统中,可以按下“Win+R”组合键打开运行窗口,然后输入“cmd”打开命令行界面。 4. 进入jar包所在目录:使用“cd”命令进入存放jar包的目录。例如,如果jar包存放在D盘的myapp目录下,可以使用如下命令进入该目录: ```cd D:\myapp``` 5. 运行jar包:使用Java命令来运行jar包。例如,如果要运行一个名为“myapp.jar”的jar包,可以使用如下命令: ```java -jar myapp.jar``` 运行成功后,应该可以看到jar包中的程序开始执行,并在命令行界面上输出相应的信息。 6. 后台运行jar包:如果需要让jar包在后台运行,可以使用如下命令: ```start javaw -jar myapp.jar``` 运行成功后,jar包会在后台运行,并不会在命令行界面上输出任何信息。 注意事项: - 为了避免Java虚拟机因为内存不足而崩溃,建议在运行jar包时指定最大堆内存大小。例如,可以使用如下命令: ```java -Xmx512m -jar myapp.jar``` 这将为Java虚拟机分配最大512MB的堆内存。 - 为了避免意外终止jar包的运行,可以使用一些工具来监控和管理jar包的运行状态。例如,可以使用Apache Commons Daemon或Tanuki Software Wrapper等工具。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值