您现在的位置是:亿华云 > IT科技类资讯

Shell编程之用While简单写个守护进程

亿华云2025-10-04 00:56:11【IT科技类资讯】0人已围观

简介本文转载自微信公众号「Linux常用命令」,作者妖生。转载本文请联系Linux常用命令公众号。本节内容还是循环语法,第二个循环关键字:while。while循环经常用于永久定时器,设置一个变量条件为真

本文转载自微信公众号「Linux常用命令」,简单进程作者妖生。守护转载本文请联系Linux常用命令公众号。简单进程

本节内容还是守护循环语法,第二个循环关键字:while。简单进程

while循环经常用于永久定时器,守护设置一个变量条件为真,简单进程则while中的守护命令可以永久执行下去。语法格式如下:

while condition<TRUE>       ## condition为true,香港云服务器简单进程则循环执行下去 do     command             ## 满足条件,守护则执行命令 done 

示例如下:

[root@yaomm208 ~]# vi 004-while.sh  ##  编辑004-while循环脚本 # !/bin/bash # filename:004-while.sh # author:linuxido.com LOCAL_TIME=$(date +"%Y-%m-%d %H:%M:%S")     # 获取时间并格式化 while true do    sshd_count=`ps -ef | grep ssh | grep -v color | wc -l`       # 查看有多少ssh服务    if [ $sshd_count -lt 1 ]    then        echo $LOCAL_TIME  没有找到ssh服务,简单进程重启该服务        systemctl start sshd    else         echo $LOCAL_TIME ssh服务正常运行中... fi    sleep 5  # sleep,守护Shell关键词。简单进程数字5表示沉睡5秒,守护每隔5秒检查一次 done 

运行脚本:

[root@yaomm208 ~]# sh 004-while.sh      ##  运行004脚本 2021-06-06 09:52:23 ssh服务正常运行中...   ##  进入else分支,简单进程 2021-06-06 09:52:23 ssh服务正常运行中...   ##  我们发现时间打印的是第一次的时间 …… 

在上面的网站模板时间戳打印时,我们发现打印的时间并没有变化,一直是第一次打印的时间。怎么解决这个问题?简单,将时间戳命令变成函数就行了,将后面的《函数》小节学完同学们自己就能解决这个问题。高防服务器

很赞哦!(63)