while true do pid=`ps -ef | grep 000000100000000001 | grep -v grep | awk '{print $2}'` if kill -0 ${pid} > /dev/null 2>&1 then echo "pid=${pid} is running" sleep 60 fi done
时间: 2024-02-10 22:21:34 浏览: 78
这是一个死循环的脚本,作用是检测进程ID为000000100000000001的进程是否在运行。如果进程在运行,则打印进程ID和“is running”的提示信息,然后休眠60秒。如果进程不在运行,则脚本会一直等待进程启动,并不断进行检测。这段脚本的作用是保证某个进程一直在运行,如果进程异常退出,则会自动重启进程。
相关问题
api_pip=ps -ef|grep $API|grep -v grep|grep -v kill|awk '{print $2}'这个命令是什么意思
这个命令是用来获取指定进程名称(由$API变量代表)的进程ID(PID)。让我来解释一下这个命令的每个部分的含义:
1. `ps -ef`:该命令用于列出当前系统中所有进程的详细信息。
2. `grep $API`:通过使用grep命令并指定$API变量作为关键词,筛选出包含$API变量(即指定进程名称)的行。
3. `grep -v grep`:通过再次使用grep命令,并使用`-v grep`参数,排除掉包含"grep"关键词的行,以避免将grep命令本身作为结果进行匹配。
4. `grep -v kill`:通过再次使用grep命令,并使用`-v kill`参数,排除掉包含"kill"关键词的行,以避免将kill命令本身作为结果进行匹配。
5. `awk '{print $2}'`:使用awk命令提取每行的第二个字段,也就是进程ID。
因此,该命令的目的是通过进程名筛选出对应的进程ID。
#/bin/bash while true do pid=`ps -ef | grep 000000100000000001 | grep -v grep | awk '{print $2}'` if kill -0 ${pid} > /dev/null 2>&1 then echo "pid=${pid} is running" sleep 60 else echo "CMS is not running,restarting" /usr/bin/qemu-aarch64-static /home/iCVS2.1/server/bin/CMS.out addr="192.168.10.17" port=9909 spid=000000100000000001 pwd=e10adc3949ba59abbe56e057f20f883e ip=192.168.10.17 ini="/home/iCVS2.1/server/conf/CMS_1.ini" sleep 30 fi done
这是一个 Bash 脚本,它的作用是检测一个名为 CMS.out 的进程是否在运行,如果没有运行则重新启动它。具体实现方式是使用 ps 命令获取进程列表,然后使用 grep 和 awk 筛选出 CMS.out 进程的 PID,然后使用 kill 命令检测该进程是否在运行,如果在运行则打印提示信息并等待 60 秒,否则打印重启提示信息,并使用 qemu-aarch64-static 命令重新启动 CMS.out 进程,等待 30 秒后再次检测是否在运行。该脚本使用了一个无限循环来持续检测和重启进程。
阅读全文