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

开发 前端
本节内容还是循环语法,第二个循环关键字:while。while循环经常用于永久定时器,设置一个变量条件为真,则while中的命令可以永久执行下去。语法格式如下:

[[411476]]

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

本节内容还是循环语法,第二个循环关键字:while。

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

  1. while condition<TRUE>       ## condition为true,则循环执行下去 
  2. do 
  3.     command             ## 满足条件,则执行命令 
  4. done 

示例如下:

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

运行脚本:

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

 

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

 

责任编辑:武晓燕 来源: Linux常用命令
相关推荐

2009-07-06 14:05:50

Servlet编程Servlet显示图片

2011-11-10 10:23:56

Jscex

2011-08-08 10:02:55

iPhone开发 进程 通信

2019-11-08 14:47:49

TCPIP网络

2017-01-10 13:39:57

Python线程池进程池

2023-02-01 22:40:38

shellDocker

2009-12-18 10:09:38

2009-12-18 13:43:22

2021-06-29 16:48:40

环境变量Shell

2010-06-28 14:52:30

cron进程

2010-03-02 16:37:53

Linux Quagg

2020-04-29 15:10:16

Linux命令进程

2011-12-29 13:31:15

Java

2010-07-15 15:54:10

Perl守护进程

2011-03-29 12:45:07

Zabbix进程

2009-11-24 11:35:59

2016-12-30 14:56:06

Native进程Trace

2012-05-08 11:01:45

linux守护进程

2013-01-15 15:18:46

Linux守护进程

2017-04-11 16:00:40

Linuxsyslog进程
点赞
收藏

51CTO技术栈公众号