linux下用脚本实现:监控一个进程,不存在则将其启动。

#!/bin/bash

while [ 1 ]
do
    procID=`pgrep test`
    if [ "" == "$procID" ];
    then
        /root/test -d
    fi
    usleep 1000
done &

注:1、pgrep 根据给出的进程名判断是否有这个名字的进程。如果有这个名字的进程正常退出,退出值0.如果没有这个名字的进程异常退出,退出值1。

        2、ps -p 根据给定的pid参数判断是否有这个进程,如果有这个进程正常退出,退出值0.如果没有这个进程异常退出,退出值1。
              例如: apple@ubuntu:~$ ps -p 2442

        3、最后加 & 符号,表示让脚本在后台执行,即将shell关闭后 程序仍在运行。

下边是监控多个进程,只需添加一个循环:

#!/bin/bash

while [ 1 ]
do

    for procname in proc1 proc2  #需要检测的进程名字

    do
         procID=`pgrep $procname`
         if [ "" == "$procID" ];
         then
               /root/$procname-d
         fi

    done
    usleep 1000
done &

另附参考例子:

#!/bin/sh 

#其实sh是链接到busybox的

while [1 - eq 1]  #死循环
do 
   for procname in proc1 proc2  #需要检测的进程名字
   do
      pgrep $procname
      if [0 -ne $? ]  #如果进程不存在就重启它
      then
         ./$prconame
      fi
   done
   sleep 10
done
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的系统监控脚本,它可以监控系统的CPU、内存和磁盘使用情况,并在需要时自动重启指定的服务。该脚本可以在Linux系统上使用。 ```python import psutil import subprocess import time # 要监控进程名 process_name = "nginx" # 要监控的磁盘路径 disk_path = "/" # 要监控的CPU和内存使用率阈值 cpu_threshold = 80.0 mem_threshold = 80.0 # 自启动命令 start_command = "systemctl start nginx.service" while True: # 获取CPU和内存使用率 cpu_usage = psutil.cpu_percent() mem_usage = psutil.virtual_memory().percent # 获取磁盘使用情况 disk_usage = psutil.disk_usage(disk_path).percent print("CPU usage: {}%, memory usage: {}%, disk usage: {}%".format(cpu_usage, mem_usage, disk_usage)) # 如果CPU或内存使用率超过阈值,或磁盘使用率超过90%,则重启指定的进程 if cpu_usage > cpu_threshold or mem_usage > mem_threshold or disk_usage > 90: print("Restarting process {}...".format(process_name)) subprocess.call(start_command.split()) time.sleep(60) # 每60秒检查一次 ``` 要使用此脚本进行系统监控,请将其保存为`monitor.py`,然后在终端中运行以下命令: ``` python3 monitor.py ``` 该脚本将在后台运行,并每60秒检查一次系统使用情况。如果CPU或内存使用率超过阈值,或磁盘使用率超过90%,则脚本将重启指定的进程(在本例中为nginx)。如果您希望监控其他进程,请将`process_name`变量更改为所需的进程名。如果您希望监控其他磁盘,请将`disk_path`变量更改为所需的路径。您还可以更改CPU和内存使用率阈值,以更好地适应您的系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值