美文网首页
关于linux服务器守护应用进程

关于linux服务器守护应用进程

作者: 邪恶的正派 | 来源:发表于2019-09-25 18:58 被阅读0次

之前公司在做项目测试的时候,处理了一个守护进程。现在,将守护进程的方法步骤分享。具体步骤如下:

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

  2. 先检查一下是否安装了crontab。一般情况下linux系统会自带crontab及crond。如果没有安装,请使用以下指令安装:yum install vixie-cron,yum install crontabs。如图所示:


    查询是否安装crontabs
  3. crontab执行定时(每隔30S执行一次)
    crontab –e
    在vi编辑器按i键输入
    */1 * * * * /mnt/test.sh
    */1 * * * * sleep 30 && /mnt/test.sh
    */1 * * * * sleep 60 && /mnt/test.sh
    按esc,shift+:,输入wq保存退出

  4. /mnt/test.sh 的实现,具体代码如下:

#! /bin/sh

host_dir=`echo ~`                                       # 当前用户根目录
proc_name="/home/hearken/jdk1.8.0_131/bin/java"                             # 进程名
file_name="/mnt/bindmonitor.log"                         # 日志文件
pid=0
echo "++++++++++++++++++++++++++++++++++++" >> $file_name

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

proc_id()                                               # 进程号
{
    pid=`ps -ef | grep $proc_name | grep -v grep | awk '{print $2}'`
    echo "进程id----" >> $file_name
    echo ${pid}, `date` >> $file_name
}

proc_num
number=$?
if [ $number -eq 0 ]                                    # 判断进程是否存在
then 
    JAVA_HOME=/home/hearken/jdk1.8.0_131
    CLASSPATH=$JAVA_HOME/lib/
    PATH=$PATH:$JAVA_HOME/bin
    export PATH JAVA_HOME CLASSPATH
    export PATH="/usr/local/python2.7/bin:$PATH"
    echo "重启进程" >> $file_name
    cd /home/hearken/jboss-JR/bin
    /usr/bin/nohup ./run.sh >>/mnt/1.txt 2>&1 &
    echo $?,"重启结果"  >> $file_name                                                # 重启进程的命令,请相应修改
    proc_id                                         # 获取新进程号
    echo ${pid}, `date` >> $file_name      # 将新进程号和重启时间记录
fi
  1. 开启crontab服务


    开启crontab服务

    启动服务成功,查看服务状态可使用systemctl status crond命令,也可以使用tail -f /var/log/cron查看打印的日志。

  2. 删除进程测试
    a、先使用ps –ef|grep named(named为进程名)命令查看进程,然后使用kill -9 id(id为进程号)杀掉进程
    b、5分钟后,cat /mnt/bindmonitor.log看看有无最新的记录,进程号与# ps -ef |grep named 进程号对应。

如果想开机自启动守护进程,只需要去编辑 /etc/rc.d/rc.local文件

vi /etc/rc.d/rc.local

如图所示,添加systemctl start crond.service保存退出,在重启服务器后将自动守护进程。


添加如图标记的代码

以上就是关于守护进程的方法。

相关文章

  • 关于linux服务器守护应用进程

    之前公司在做项目测试的时候,处理了一个守护进程。现在,将守护进程的方法步骤分享。具体步骤如下: 实现原理:由定时任...

  • 进程守护进程

    什么是守护进程?Linux 的大多数服务器就是用守护进程实现的,使用ps -axj可以查看守护进程: 守护进程基本...

  • Linux下MySQL的启动方式

    Linux下MySQL的启动方式 在Linux系统下,MySQL服务器通常有四种启动方式:mysqld守护进程启动...

  • rsync服务企业应用

    守护进程服务企业应用: 守护进程多模块功能配置 守护进程的排除功能实践 守护进程来创建备份目录 守护进程的访问控制...

  • linux进程

    linux进程包含如下几个方面:1:进程的控制(创建,等待子进程终止,执行程序,退出)2:守护进程(什么是守护进程...

  • 孤儿进程、僵尸进程和守护进程

    [TOC] 参考资料 Linux 之守护进程、僵死进程与孤儿进程【概述】-Linux内核三驾马车之-进程管理【Li...

  • Window下使用bat批处理实现进程守护

    笔者早linux中写过shell脚本来实现进程守护(参考文章-Linux进程怎么保证高可用性),思路是判断进程...

  • Docker

    Docker概念 Docker Engine,它是一个客户端 - 服务器应用程序 REST API指定与守护进程交...

  • 守护进程,互斥锁,队列,生产者消费者模型

    守护进程 关于守护进程需要强调两点: 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进...

  • linux守护进程

    1、什么是守护进程 守护进程是运行在后台的一种特殊进程,它独立于控制终端并且周期性地执行某种任务或等待处理某些发生...

网友评论

      本文标题:关于linux服务器守护应用进程

      本文链接:https://www.haomeiwen.com/subject/apdwuctx.html