linux crontab执行api,Linux crontab定时执行Shell脚本需要执行特定的命令时解决思路...

项目部署后需定时检测运行状态,若异常则重启。定时器执行正常,但重启命令无法启动。经查找发现,Shell脚本中的Java命令需引入环境变量才能正常执行,文中给出了crontab执行配置和Shell脚本示例,为解决类似问题提供思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于一些不可抗拒的原因,项目部署后需要定时检测项目是否正常运行,否则将执行重启命令。

在具体实施过程中发现,定时器执行无误,但是重启命令无法正常启动。多方查找发现Shell脚本中的Java命令需要引入环境变量方可正常执行。因此做了一下修改,脚本如下(仅供参考):

1、crontab执行配置

* * * * * cd /项目目录 && ./auto_start.sh >> /log/auto.out

2、Shell脚本

#!/bin/bash

#导入环境变量

export LANG="en_US.UTF-8"

export JAVA_HOME=/usr/local/java

export CLASSPATH=$JAVA_HOME/lib

export PATH=$PATH:$JAVA_HOME/bin

APP_NAME=app

JAR_NAME=app.jar

Log="log.out"

JVM="-server -Xms1024m -Xmx1024m -Xmn256m -Xss512k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"

pid=$(ps -ef | grep -v 'grep' | egrep $JAR_NAME| awk '{printf $2 " "}')

if [ "$pid" != "" ]; then

echo "boot ( pid $pid) is running"

else

echo -n "auto_start process pid: "

nohup java $JVM -jar $JAR_NAME --spring.profiles.active=dev > $Log 2>&1 &

echo $(ps -ef | grep -v 'grep' | egrep $JAR_NAME| awk '{printf $2 " "}')

fi

简单记录如此,目的是为了提供一种解决问题的思路,当在使用crontab的过程中出现类似不可执行的命令时,当查看是否需要引入相应的环境变量。

恐有疏漏,欢迎指正。讨论中精进技术,同技术死磕到底!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

您可能感兴趣的文章:linux shell之控制台打印各种颜色字体和背景的实现方法

Linux Shell在目录下使用for循环结合if查找文件的巧用

Linux shell命令统计某列去重后的值

Linux shell脚本的建立与执行

Linux shell数组与关联数组的用法实例

Android之在linux终端执行shell脚本直接打印当前运行app的日志的实现方法

Linux Shell 生成随机数和随机字符串的方法示例

Linux shell环境下Zabbix Api的使用

linux中shell的变量的数值计算

linux shell之pushd、popd和dirs的使用讲解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值