您现在的位置是:亿华云 > 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)