不会打篮球的程序员不是个好厨师 2022-11-22 16:13 采纳率: 60%
浏览 3
已结题

linux定时任务失败

从网上摘抄了一段监听进程的sh代码,但一直无法重启成功

这份文件是listenAndStartMyWatcher.sh


#!/bin/bash
st_dir=`echo ~`
#echo $host_dir
proc_name="MyWatcher.jar"
file_name="/usr/liyunpeng/listenAndStartMyWatcher.log"
startMyWatcherLog="/usr/liyunpeng/startMyWatcher.log"
pid=0

proc_num()
{
        num=`ps -ef |grep -w ${proc_name} | grep -v grep | wc -l`
        return $num
}

proc_id()
{
        pid=`ps -ef |grep -w ${proc_name} | grep -v grep | awk '{print $2}'`
}

proc_num
number=$?
echo 'number='${number} >> ${file_name}

if [[ ${number} -eq 0 ]]
then
        echo '进程死了'
        echo 'WARNING 进程死了,开始重启====='`date`>> $file_name
        /bin/bash /usr/liyunpeng/startMyWatcher.sh >> ${file_name}
        #这个result会返回127 或者完全没有值返回
        echo 'result='$? >> ${file_name}
  
        if [[ ${result} -gt 0 ]]
        then
                echo '['`date`' warning]重启成功=====' >> $file_name
        else
                echo '['`date`' erro]重启失败=====' >> $file_name
        fi
else
        proc_id
        echo '['`date`' info]别慌,他还活着pid:'${pid} >>$file_name
fi

在crontab -e里是这样的

*/1 * * * *  /usr/liyunpeng/listenAndStartMyWatcher.sh

会每隔1分钟,就去检查这个进程是否在运行

这是我的startMyWatcher.sh文件内容
#!/bin/bash
jar_name=/usr/liyunpeng/MyWatcher.jar
jar_log_name=/usr/liyunpeng/MyWatcher.log
nohup java -jar ${jar_name} > ${jar_log_name} &
运行结果及报错内容

无法重启成功,事实上startMyWatcher就是一个简单的重启命令,但我不明白为什么没重启成功

我的解答思路和尝试过的方法

如上面代码所示

我想要达到的结果

能够通过定时任务去实现,这个java进程的永生

  • 写回答

5条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 12月4日
      • 已采纳回答 11月26日
      • 创建了问题 11月22日

      悬赏问题

      • ¥15 Python不使用Selenium怎么实现网页输入和点击
      • ¥50 vue百度地图导致浏览器崩溃
      • ¥15 请问这段C语言代码应该如何修改呢
      • ¥20 Latex 转入带数式的曲线图后数式部分报错
      • ¥15 Arcgis基于一幅栅格提取另一幅栅格单元值
      • ¥15 Verilog数据产生器代码疑点
      • ¥15 电脑部分网页无法访问是为什么?
      • ¥15 如何在vscode导出pdf失败了,拓展也安装了?
      • ¥15 使用python-kivy如何点击按钮选择手机相册中的图片?
      • ¥15 Matlab图像生成后如何对于打开exe文件