首先在当前目录下新建一个名为test2.sh的文件

文件下面下如下面内容:

#!bin/bash

while :

do

echo "yes hello world"

sleep 1

done

保存,退出,添加执行权限:chmod +x test2.sh

同理新建一个test.sh

#!bin/bash

while :

do

if [ $(ps -ef | grep "test2" | grep -v "grep" | wc -l) -eq 1 ];then

kill $(ps -ef|grep "test2.sh"|awk '{print $1}')

echo "kill"

sh test2.sh

echo "restart"

else

echo "not found"

fi

sleep 2

done

保存,推出,添加执行权限

说明:

#!bin/bash:告诉系统该脚本需要用sh来执行

while :无限循环模式,注意while与“:”之间有一个空格!

do:与while一起

if [ $(ps -ef | grep "test2" | grep -v "grep" | wc -l) -eq 1 ];then:

if...then语句,而ps -ef | grep "fd" | grep -v "grep" | wc -l查验test2程序是否在运行,如果在运行,那么会返回所有名字为test2的程序行数,如果没有在运行的程序,那么返回0,

$()表示变量的意思,这里不能使用下面的语法,否则什么也得不到!

processNum=$(ps -ef | grep "test2" | grep -v "grep" | wc -l)

if( ${processNum} -eq 1)

正确的语法是:

processNum=ps -ef | grep "test2" | grep -v "grep" | wc -l'

-eq:是相等的意思

这句话整体意思是:如果系统中存在名字为test2的程序,并且只有一个程序,那么:

kill $(ps -ef|grep "test2.sh"|awk '{print $1}')

ps -ef|grep "test2.sh"|awk '{print $1}'返回的是test2.sh的pid,这样就能让kill命令使用了!

当然这里的print $1要按照系统的实际情况来定,可能是第一列($1),也可能是第二列($2),也可能是其他

echo "kill":输出kill字符

sh test2.sh:test2.sh命令重启

else

echo "not found"

与上面的if语句一起使用,如果没有test2的程序,那么输出“not found"

fi:结束if语句

sleep 2:延时两秒

done:while循环

脚本调试

最简单的调试方法当然是使用echo命令。你可以在任何怀疑出错的地方用echo打印变量值,这也是大部分shell程序员花费80%的时间用于调试的原因。Shell脚本的好处在于无需重新编译,而插入一个echo命令也不需要多少时间。

shell也有一个真正的调试模式,如果脚本”strangescript”出错,可以使用如下命令进行调试:

sh -x strangescript

7 上述命令会执行该脚本,同时显示所有变量的值。

shell还有一个不执行脚本只检查语法的模式,命令如下:

sh -n your_script

这个命令会返回所有语法错误。

linux中程序定时重启脚本,linux 程序定时重启脚本相关推荐

  1. linux中启动 java -jar 后台运行程序

    ps -ef | grep java  查询java 端口占用 linux中启动 java -jar 后台运行程序 直接用java -jar xxx.jar,当退出或关闭shell时,程序就会停止掉. ...

  2. linux中shutdown命令的含义,Linux中的shutdown命令的详细解释

    linxu下的shutdown命令是一个关机命令.下面由学习啦小编为大家整理了linux的shutdown命令的详细解释的相关知识,希望对大家有帮助! 一.Linux中的shutdown命令的详细解释 ...

  3. centos sudo不能运行_如何在 Linux 中配置 sudo 访问权限 | Linux 中国

    Linux 系统中 root 用户拥有 Linux 中全部控制权力.Linux 系统中 root 是拥有最高权力的用户,可以在系统中实施任意的行为.-- Magesh Maruthamuthu Lin ...

  4. linux中_Linux基础知识(Linux系统、Linux中的链表)

    Linux系统简介 Linux系统的结构及特点 Linux系统的结构图如下图所示: 从上图可以看出,Linux是一个典型的宏内核(一体化内核)结构.硬件系统上面时硬件抽象层,在硬件抽象层上面时内核服务 ...

  5. 19. linux中权限详解,Linux权限位,读写执行权限真正含义,chmod详解

    linux中权限详解,Linux权限位,读写执行权限真正含义,chmod详解 文章目录 Linux权限位 读写执行 三种权限真正含义和作用 权限对文件的作用 权限对目录的作用 示例 chmod 使用数 ...

  6. linux取证教程,Linux中的取证(Forensics in Linux)

    Linux中的取证(Forensics in Linux) 数字调查的主要问题是通过加密或任何其他格式保护重要证据或数据. 基本示例是存储密码. 因此,有必要了解Linux操作系统在数字取证实施中的使 ...

  7. 如何在Linux中安装和使用Silver Searcher(程序员的代码搜索工具)

    Silver Searcher是一个免费的开源跨平台源代码搜索工具,类似于ack ( 类似于程序员的grep工具 ),但速度更快. 它运行在类Unix系统和Windows操作系统上. 银色搜索者和ac ...

  8. 如何在64位的Linux中运行32位的应用程序

    大部分Linux发行套件都有针对x86_64处理器的版本.比较典型的x86_64的处理器有ADM Athlon II和英特尔Xeon.因为这些Linux发行套件都有自己专用的软件源,这些软件源会为提供 ...

  9. linux中如果编译二进制,在linux中把汇编或c程序交叉编译成二进制文件烧录开发板过程详解...

    嵌入式开发中在宿主机中要编译能在目标机中运行的程序文件需要用到一种工具:交叉工具链.其中我们常用的交叉工具有以下几种:交叉编译器,交叉连接器,交叉转换器,交叉ELF文件工具,交叉反汇编器.以下通过实例 ...

  10. 在 linux 中加载启动 zynq PL 程序

    目录 环境 使用 BIN 文件生成 附 在 zynq 使用系统时,可在 uboot 与 linux 中加载启动 PL 程序,一直以来用的都是在 uboot 中加载启动,本次试了试在 linux 中启动 ...

最新文章

  1. jackson 实体转json 为NULL或者为空不参加序列化
  2. ppt生成器_WPS又有新动作!发布新款PPT快速生成器,职场办公必备
  3. dom操作表格示例(dom创建表格)
  4. spark 写tidb_tidb使用坑记录
  5. 博客园北京俱乐部第三次技术活动(2009/5/23)总结
  6. 打印Show Attend and Tell的损失函数
  7. PHP学习总结(数据库概念、DDL语句、DML语句)
  8. sql server常用函数、常用语句
  9. mysql如何时间减10分钟_mysql – 从时间值中减去分钟数
  10. 95-30-060-java.util-HashSet
  11. 从泰勒展开到牛顿迭代
  12. 【CFD学习】网格无关性验证
  13. php ctf题,CTF---PHP安全考题
  14. echarts的x轴去掉网格线
  15. 「实用」打造自我感觉非常漂亮的Mac终端
  16. 使用 natbib 进行参考文献管理
  17. 20190828笔记
  18. 自学编程,痛并快乐着
  19. 1.2 电流和电压的参考方向
  20. python五角星符号怎么打出来_如何使用python输出连续星号?

热门文章

  1. 190401每日一句
  2. WinEdt编译重新生成PDF以及找到模板tex对应的论文树形结构
  3. Atitit 提升记忆效率 有损压缩原理总结 目录 1. 常见方法 1 1.1. 抽象化提升一层 概念化 1 1.2. 骨架 ,目录化 大纲化 归纳整理 1 1.3. 提取关键词 ,摘要 ,
  4. paip.函数式编程方法概述以及总结
  5. paip.c3p0 数据库连接池 NullPointerException 的解决...
  6. paip.oracle query export to insert sql
  7. paip.chrome使用ACTIVX 的总结
  8. 星环TDH助力南方基金数据中心迈入大数据时代
  9. 贝索斯:为什么我们要选择更难的事情去做? |【经纬低调分享】
  10. 蚂蚁可信原生负责人入选“2021年度全球青年领袖”名单