一些比较功能需求比较简单的可以考虑使用shell脚本来写,这样可以方便快捷稳定

1. 读取文件值,根据文件值1 或 0 来开启和关闭某些程序

a.  while :

do

done

是无限循环。

b. while read line

do

echo $line

done < value

是读取文件value中的每行。

c . if [ $line = "0" ]; then

fi

是if语句,[]内左右两边都要留空格。

d. if []; then

elif []; then

fi

是if-else语句。

e.

ps | grep -v grep | grep modbusConfig | wc -l
wc -l 是用来计算结果的条数
grep -v grep是去掉结果中包含grep的记录 f. #!/bin/sh 是使用/bin/目录下的sh工具
#!/bin/sh
while :
do
cd /sys/class/gpio/gpio26/
while read line
do
echo $line
if [ $line = "" ];then
killall pwmOut
killall modbusConfig
echo pwm_duty_cycle > /tmp/my_fifo
elif [ $line = "" ];then
sn=`ps | grep -v grep | grep pwmOut | wc -l`
if [ $sn -lt ];then
cd /modbus/
./pwmOut &
fi
sm=`ps | grep -v grep | grep modbusConfig | wc -l`
if [ $sm -lt ];then
cd /modbus/
./modbusConfig &
fi
fi
done < value
sleep
done

2.  watchdog 守护精灵,当目标程序不在运行时就会启动它

watchdog.sh

get_web_srv_sts()
{
ret1=`ps | grep "$1" | grep -v grep | wc -l`
ret2=`ps | grep "$1"|grep -v grep | grep "Z"|wc -l`
if [ $ret1 -ge ] && [ $ret2 -eq ]
then
FUN_RET="UP"
else
FUN_RET="DOWN"
fi
} while true; do
get_web_srv_sts "collector_arm" if [ $FUN_RET = 'UP' ]
then
echo "process running"
sleep
else
echo "process down"
killall collector_arm
sleep
cd /usr/file/ssf
./collector_arm&
sleep
fi
done

shell脚本使用记录的更多相关文章

  1. weblogic每天日志合并shell脚本 [个人记录]【转】【补】

    from RogerZhu modified by King sh logback.rb "/data/logs/" "/tmp/domain" "a ...

  2. shell脚本技巧记录

    2014/4/9 shell脚本变量处理: ${varible##*string} //从左向右截取最后一个string后的字符串 ${varible#*string} //从左向右截取第一个stri ...

  3. shell 脚本使用记录

    2019-03-26 需求是:因为遇到一些测试偶发性的出现,比如执行了20次会出一次错误,然后就顺手写了一个小脚本,用来判断执行了 n 次,是否出现错误.根据正则来匹配出substring value ...

  4. shell脚本使用记录一:操作文件

    一,连接远程数据库(保证在服务器上能使用mysql命令行,至少要安装mysql客户端) #!/bin/bash HOSTNAME="ip" PORT=" USERNAME ...

  5. history 查看历史操作记录在shell脚本执行中无法显示问题

    今天使用shell脚本想查看历史操作命令的记录于是写了一个再简单不过的脚本,可是以chmod +x 权限执行./test.sh发现执行后没有任何反应.于是查找原因:将脚本文件中的#!/bin/bash ...

  6. shell脚本笔记(原创不断记录)

    今天开始自己的shell脚本练习,刚好公司有太服务器,要时间对数据的cp是按月的: 考虑:首先寻找规律,发现都放置在/opt/www/aaa/  里面有很多的2级和3级目录和文件,但我追踪要备份的是年 ...

  7. Hbase记录-shell脚本嵌入hbase shell命令

    第一种方式:hbase shell test.txt test.txt:list 第二种方式:<<EOF重定向输入 我们经常在shell脚本程序中用<<EOF重定向输入,将我们 ...

  8. 批量杀掉多个pid文件中记录的pid进程, 并集成到shell脚本中

    head_files=`find ./fmsConf/ -name "*.pid"` for file in $head_files do cat $file | awk rm - ...

  9. Shell记录-Shell脚本基础(一)

    Shell 注释: 你可以把注释,在你的脚本如下: #!/bin/bash # Author : Zara Ali # Copyright (c) Tutorialsyiibai.com # Scri ...

随机推荐

  1. OpenJudge数据结构与算法-计算点的距离并排序

    /*================================================================== 距离排序 总时间限制: 1000ms 内存限制: 65536k ...

  2. Linux笔记整理

    [随时更新] ps aux | grep mysql 检测MySQL服务是否在运行 Linux查看某个进程的线程:ps -T -p <pid> 列出了由进程号为<pid>的进程 ...

  3. ISO/IEC 9899:2011 条款6.2.5——类型

    6.2.5 类型 1.存储在一个对象中的值或由一个函数所返回的值的意义由用于访问该对象的表达式的类型来确定.(声明为一个对象的一个标识符是最简单的这种表达式:其类型在标识符的声明中指定.)类型被划分为 ...

  4. EasyUI下拉框级联

    EasyUI用来实现后台界面还是可以的,毕竟面对的是小众群体而非广大的用户,简单为美.这里想聊的功能是一种下拉框的联动,比如我选中了下拉框A的某一项,那么下拉框B的选项就是甲乙丙丁,如果我选了A的另一 ...

  5. dapper 异步修改方法

    public async Task<int> UpdateStatusByWarehouseId(bool isValid, int warehouseId) { using (var c ...

  6. Spring声明式事务如何选择代理方式?

    Spring声明式事务如何选择代理方式   解决方法: 1.基于注解方法: <tx:annotation-driven transaction-manager="txManager&q ...

  7. 123457123456#0#-----com.threeapp.SuanShuXiaoTianCai01----数学算术小天才

    com.threeapp.SuanShuXiaoTianCai01----数学算术小天才

  8. SpringCloud学习成长之 十 高可用服务注册中心

    文章 第一篇: 服务的注册与发现(Eureka) 介绍了服务注册与发现,其中服务注册中心Eureka Server,是一个实例,当成千上万个服务向它注册的时候,它的负载是非常高的,这在生产环境上是不太 ...

  9. PostgreSQL创建database默认编码为UTF-8

    在psql中执行如下代码: create database logdb encoding='UTF8';

  10. 【c# 学习笔记】c#中的类

    1.什么是类: 在c#中类是一种数据结构,它可以包括数据成员.函数成员(方法.属性.事件.索引器.索引符.实例构造函数.静态构造函数和析构函数.及嵌套类型). 属性是,类中字段和方法的结合体,通过定义 ...