在嵌入式Linux系统中交叉编译一个socket服務器、socket服务存在意外进程结束的现象下面通过shell脚本脚本完成对socket服务程序的监控。
一、PS命令查看Linux程序进程
利用PS命令查看server进程的状态如死亡、就重新启动。做一个死循环轮训
30秒去轮询这个这个进程。死亡就继续重启
然后脚本检测到后,进而重启这时server的进程号已经变化。这样server服务器的进程就完成的死亡重启的监控
大家好!我是handsomecui下面我为大家讲解一下shell脚本脚本的写法,讲的不好的地方欢迎大家留言拍砖。
1.在linux下会写shell脚本脚本是非常重要的下面我参照例子给大家展示几个脚本,順带这学习shell脚本 的语法:
什么时候helloworld是必不可少的第一个脚本肯定与helloworld是离不开的:
shell脚本脚本简单易懂,只要有一点点c语言的基础这些都昰小case;
2.下面带着大家学学if语句:
先抛出一个问题:写一个脚本,判断当前所用的shell脚本
#是注释的意思相关部分已经在里面详细给大家注释解释了,注意if语句的格式
另外注意if语句还可以简单的用&&与||或语句来代替;另外如果想要深入了解if可以找男人test(在linux遇到问题要学会找男人解决man)
3.为了让大家更加熟练的运用shell脚本,那么练习下吧问题:写一个脚本使其從一个文件里面读入有echo的语句,并把其写在本文件末尾;
这里由于重定向不能本文见输出到本文件输出,于是峩就想了个办法新建个文件,再重定向到这个文件大神有别的简单方法可以下面留言拍砖;
4.接下来,我们练习下while的用法老规矩具体问題来分析;
问题:写一个脚本(不建议使用for变量--for是根据空格取值)
3.统计一个有多少个用户
这里要注意到awk的用法可以找linux的男人解决;
5.练习一下for语句吧
1.切换工作目录至/tmp
2.依次向/tmp目录中的每个文件或子目录问好(Hello,log)
3.統计/tmp目录下共有多个文件,并显示出来
这个问题就相对简单了些一个for语句就可以搞定,当然可以while搞搞
传递两个整数给脚本让脚本分别計算并显示这两个整数的和,差积,商
这里要注意的是需要传入两个参数;
具体用到的一些知识请看下面:
读到這里大家对上面的小脚本是不是感觉特别easy了,哈哈;
7.写一个脚本;求1到100的和
8.接下来,我们写个很实用的脚本吧假设你现在在机房,你想要看看机房哪些ip在开着方便咱。。是吧。
在这里2>&1代表不显示错误信息,其实就是把错误重定向到标准输出然后重定向到/dev/null,/dev/null就是個黑洞写入的任何东西都会丢失,其实简要说就是把正确或错误的输出扔到垃圾桶
写到这里大家是不是感觉耳目一新呐,哈哈!
随笔練习:还有点bug
在嵌入式Linux系统中交叉编译一个socket服務器、socket服务存在意外进程结束的现象下面通过shell脚本脚本完成对socket服务程序的监控。
一、PS命令查看Linux程序进程
利用PS命令查看server进程的状态如死亡、就重新启动。做一个死循环轮训
30秒去轮询这个这个进程。死亡就继续重启
然后脚本检测到后,进而重启这时server的进程号已经变化。这样server服务器的进程就完成的死亡重启的监控