linux进程监控与自动重启的简单实现方法

 更新时间:2019年07月21日 10:28:48   作者:Jonathan  
这篇文章主要给大家介绍了关于linux进程监控与自动重启的简单实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用linux具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

目的:

linux 下服务器程序会因为各种原因dump掉,就会影响用户使用,这里提供一个简单的进程监控和重启功能。

实现原理:

由定时任务crontab调用脚本,脚本用ps检查进程是否存在,如果不存在则重启并写入日志。

crontab修改

# crontab -e
*/5 * * * * /mnt/bindmonitor.sh

/mnt/bindmonitor.sh 的实现

#! /bin/sh

host_dir=`echo ~`          # 当前用户根目录
proc_name="/home/wkubuntu/named/sbin/named"        # 进程名
file_name="/mnt/bindmonitor.log"       # 日志文件
pid=0

proc_num()            # 计算进程数
{
 num=`ps -ef | grep $proc_name | grep -v grep | wc -l`
 return $num
}

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

proc_num
number=$?
if [ $number -eq 0 ]         # 判断进程是否存在
then 
 /home/wkubuntu/named/sbin/named -c /home/wkubuntu/named/etc/named.conf -n 1 &
              # 重启进程的命令,请相应修改
 proc_id           # 获取新进程号
 echo ${pid}, `date` >> $file_name  # 将新进程号和重启时间记录
fi

删除进程测试

a. #killall -15 named

b. 5分钟后,cat /mnt/bindmonitor.log看看有无最新的记录,进程号与# ps -ef |grep named 进程号对应。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

相关文章

  • LNAMP架构中后端Apache获取用户真实IP地址的2种方法

    LNAMP架构中后端Apache获取用户真实IP地址的2种方法

    Nginx作为前端,Apache作为后端的情况下,Apache只能获取到Nginx前端的ip地址(127.0.0.1),而无法获取到用户的真实ip地址,在这种情况下,后端Apache如何获取用户真实IP地址?
    2014-03-03
  • Apache Airflow 快速入门教程应用场景分析

    Apache Airflow 快速入门教程应用场景分析

    ApacheAirflow是一个用于编排、调度和监控工作流的开源平台,适用于ETL和MLOps用例,它通过有向无环图(DAG)定义管道,支持任务依赖关系、调度、错误处理和日志记录,本文介绍Apache Airflow 快速入门教程,感兴趣的朋友一起看看吧
    2024-12-12
  • linux中如何添加用户并赋予root权限详解

    linux中如何添加用户并赋予root权限详解

    这篇文章主要先是给大家介绍了linux中如何添加用户并赋予root权限,而后有详细的介绍了Linux系统用户组的管理,文中通过示例代码介绍的很详细,相信对大家的理解和学习具有一定的参考借鉴价值,有需要的朋友们下面来一起学习学习吧。
    2016-11-11
  • Linux下如何查看内存泄露的命令

    Linux下如何查看内存泄露的命令

    这篇文章主要介绍了Linux下如何查看内存泄露的命令方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Logrotate实现Catalina.out日志每俩小时切割示例

    Logrotate实现Catalina.out日志每俩小时切割示例

    Logrotate是一个日志文件管理工具,它是Linux默认自带的一个日志切割工具。本篇文章主要介绍了Logrotate实现Catalina.out日志每俩小时切割示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助
    2019-02-02
  • Linux I/O多路复用详解及实例

    Linux I/O多路复用详解及实例

    这篇文章主要介绍了Linux I/O多路复用详解及实例的相关资料,并附实例代码,需要的朋友可以参考下
    2016-11-11
  • LuManager Linux/Unix服务器管理面板推荐之国产面板

    LuManager Linux/Unix服务器管理面板推荐之国产面板

    国外VPS 大多数是 Linux /Unix平台,Linux/Unix平台的优点也很多,重点是它还是免费的,(用过美国VPS 的朋友都知道国外IDC 装Windows是需要版权费的)国内大型网站几乎都是用Linux/Unix平台
    2012-09-09
  • apache配置开启网站服务步骤

    apache配置开启网站服务步骤

    apache配置开启网站服务步骤,需要的朋友可以参考下。
    2010-06-06
  • ftp通过SSH远程连接到Linux

    ftp通过SSH远程连接到Linux

    这篇文章介绍了ftp通过SSH远程连接到Linux的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • 解决fatal:remote error:You can''t push to git://github.com/username/*.git问题的办法

    解决fatal:remote error:You can''t push to git://github.com/use

    这篇文章主要介绍了解决fatal:remote error:You can't push to git://github.com/username/*.git问题的办法的相关资料,需要的朋友可以参考下
    2016-12-12

最新评论