找回密码
 立即注册

[其他] 解决au和db挂掉的终极解决办法

[复制链接]
heeb0957 发表于 2022-11-5 04:31:01 | 显示全部楼层 |阅读模式
linux下自动检测并重新启动一个死掉的进程,然后再把它杀死:)(shell脚本实现)
. /etc/profile.d  #如果要把这个shell脚本放到crontab中,这句不能少,用来初始化程序环境变量,这是root用户的环境变量文件

PNAME="程序名字"    #引号不能少,因为程序名字后面可能会有空格和参数
PATHNAME=程序所在文件夹绝对路径
LENGTH=`ps -efgrep "$PNAME"grep -v grepcut -b 49-200wc -c `  #引号不能少,同上
if test $LENGTH -eq 0
then
cd $PATHNAME
nohup $PNAME >/dev/null  &
fi

杀死进程(可能有多个,暂不考虑)

PNAME="程序名字"    #引号不能少,因为程序名字后面可能会有空格和参数
PATHNAME=程序所在文件夹绝对路径
PID=`ps -efgrep "$PNAME"grep -v "grep"awk '{print $2}'`
或者
PID=`ps -efgrep "$PNAME"grep -v "grep"cut -b 10-15`#引号不能少,同上
LENGTH=echo $PIDwc -c
if test $length -ne 0
then
kill -9 $PID
fi

备注:

    -eq 等于 -z 空串(if [ -z $filename2_size ]  [ -z $filename1_size ]  [ -z $filename0_size ]; then
                                      echo 'no such files' )
    -ne 不等于 = 两个字符相等
    -gt 大于 != 两个字符不等
    -lt 小于 -n 非空串
    -le 小于等于
    -ge 大于等于

命令1 && 命令2

      &&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;
      换句话说,“如果这个命令执行成功&&那么执行这个命令”。

命令1  命令2

      如果左边的命令(命令1)未执行成功,那么就执行右边的命令(命令2);
      或者换句话说,“如果这个命令执行失败了 那么就执行这个命令”

路径=/etc/crontab

示范如下:
SHELL=/etc/profile.d
PNAME="authd"
PATHNAME=/root/cauthd/build/
LENGTH=`ps -efgrep "$PNAME"grep -v grepcut -b 49-200wc -c `
if test $LENGTH -eq 0
then
cd $PATHNAME
nohup $PNAME >/dev/null  &
fi

# run-parts
01 * * * * root run-parts /root/cauthd/build  #每小时执行的目录

SHELL=. /etc/profile
PNAME="authd"
PATHNAME=/root/cauthd/build/
PID=`ps -efgrep "$PNAME"grep -v "grep"awk '{print $2}'`
PID=`ps -efgrep "$PNAME"grep -v "grep"cut -b 10-15`
LENGTH=echo $PIDwc -c
if test $length -ne 0
then
kill -9 $PID
fi

# run-parts
01 * * * * root run-parts /root/cauthd/build  #每小时执行的目录

===================================================================
如果使用crontab编辑计划任务或直接修改/etc/crontab文件后,计划任务没有生效,可能需要重启一下crond服务:service crond restart

crontab 启动 依赖 crontabs包和 crond服务, crond服务使用的crontab定义的命令

因此需要:
service crond start
或者
/etc/rc.d/init.d/crond start

加入开机自动启动:
chkconfig --level 35 crond on

crontab重启 依赖 crontabs包和 crond服务
因此 crontab 重启需要:
service crond restart
或者
/etc/rc.d/init.d/crond restart

加入开机自动启动:
chkconfig --level 35 crond on

这样的话,你就可以放心睡觉了,不用担心au和db了,嘿嘿!!!正在研究试验中(单机挂机第二天中,暂时无报错)。。大家可以先按我说的去试试,格式不一定全对!自己试下,注意备份哦!!!:)

zghsunsways 发表于 2022-11-5 08:51:08 | 显示全部楼层
真是被感动的痛哭流涕……
回复

使用道具 举报

gfdhj 发表于 2022-11-8 14:14:40 | 显示全部楼层
真是被感动的痛哭流涕……
回复

使用道具 举报

zhuzzzz 发表于 2022-11-9 00:22:36 | 显示全部楼层
强烈支持楼主ing……
回复

使用道具 举报

cbz123 发表于 2022-11-11 12:07:57 | 显示全部楼层
淡定,淡定,淡定……
回复

使用道具 举报

108426382 发表于 2022-11-12 13:23:57 | 显示全部楼层
真是被感动的痛哭流涕……
回复

使用道具 举报

az11109 发表于 2022-11-13 02:13:43 | 显示全部楼层
看到这帖子真是高兴!
回复

使用道具 举报

onmei 发表于 2022-11-13 02:29:25 | 显示全部楼层
真是被感动的痛哭流涕……
回复

使用道具 举报

thtyhust 发表于 2022-11-16 06:49:53 | 显示全部楼层
感恩无私的分享与奉献
回复

使用道具 举报

rrssttrst 发表于 2022-11-17 11:09:31 | 显示全部楼层
感恩无私的分享与奉献
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|游戏淘宝湾

GMT+8, 2024-11-21 19:50 , Processed in 0.064216 second(s), 54 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024, Oddpp Cloud.

快速回复 返回顶部 返回列表