一、脚本样例

以quectel的EC20模组关闭ppp拨号服务脚本为例,以下为脚本源码:

#!/bin/sh
timeout=5
killall -15 pppd
sleep 1
killall -0 pppd
while [ $? -eq 0 ]
dotimeout=`expr $timeout - 1`if [ $timeout -eq 0 ]thenexit 1fisleep 1killall -0 pppd
doneif [ $? -ne 0 ]
thenkillall -9 pppd
fi  

二、代码解释

kill 后跟pid来结束进程; killall 后跟服务名称/进程名称来结束进程。

kill/killall后边跟的数字含义见下图

killall -15 pppd : 给pppd进程发送SIGTERM信号,通知该进程自己实现退出,但该程序可能在执行IO,不一定能及时响应,因此有可能被阻塞。

sleep 1: 延时1s,等待pppd自我实现退出,此时不一定能成功。

killall -0 pppd : 发送-0 的含义是判断当前进程或服务是否存在, 该进程或服务不作任何响应,如果返回0则服务存在,否则服务不存在。

while [ $? -eq 0 ] : shell 脚本的while循环控制,$?表示上一条语句执行结果。

exit 1: 退出while,并返回while的执行结果为1,一般表明异常退出,此处的含义为5秒内pppd没有正常退出。

if [ $? -ne 0 ]:判断while执行的结果,如果不为0,则执行if内容;

killall -9 pppd:发送SIGKILL信号给pppd,无条件退出,强制退出进程,该信号不可忽略或被进程捕获。

如何用脚本可靠关闭一个linux服务或进程相关推荐

  1. CMD 命令行查看端口被哪个程序占用,并根据PID值,找到相应的程序,关闭掉对应服务或进程!...

    CMD 命令行查看端口被哪个程序占用,并根据PID值,找到相应的程序,关闭掉对应服务或进程! 不用任何第三方软件的情况下,打开CMD执行如下命令:1,netstat -ano 你可以查看到Local ...

  2. linux进程服务,Linux服务及进程

    简介 介绍Linux中服务及进程的操作使用 服务以及进程 vmstat 结果: procs -----------memory---------- ---swap-- -----io---- -sys ...

  3. Linux学习:第六章-Linux服务和进程管理

    一进程查看 1psaux查看当前系统所有运行的进程 -a显示前台所有进程 -u显示用户名 -x显示后台进程 user: 用户名 pid:进程id.PID1init系统启动的第一个进程 %CPUcpu占 ...

  4. shell脚本循环执行一个linux命令,Linux中循环执行shell命令的方法

    Linux命令行,循环执行shell命令 死循环 命令格式while true ;do ; done; 可以将 command 替换为任意命令. 下面以echo "hello"; ...

  5. linux服务与进程管理sup,linux下进程管理工具-supervisord

    一 简介 supervisord是linux下的一个优秀的进程管理工具,通过supervisord可以方便管理和应用linux系统下服务进程过多的问题,其支持服务异常退出自动重启,通过浏览器管理控制相 ...

  6. linux计划任务如何关闭程序,linux系统管理-管理进程并设置计划运行的任务

    案例需求 --为了更好的了解和控制Linux服务器的有序运行,需要管理员对进程管理和计划任务设置相关操作进行熟悉,以完成相应的服务运行维护任务. 需求描述 管理系统中的进程 确认vsftpd.sshd ...

  7. 实验三linux服务与进程管理,Linux 进程与服务管理1

    实验1: inittab配置调整 实验环境 在虚拟机Linux系统下 实验目标 注在Linux虚拟机环境中由于系统是装在虚拟机中而你的寄生系统是Windows因此在虚拟机中你需要用到Ctrl+Alt+ ...

  8. Android定制--------系统内置文件,用到linux服务(视频文件、音频文件等)

    在Android定制的过程中,有客户要求将一些视频.音频等文件内置在系统中.将过程记录下来,方便以后查询. 内置过程大致分为以下几个过程: 1.将需要内置的我文件,放置指定文件夹. 2.用mk文件将需 ...

  9. 简述linux开机启动进程,Linux系统启动流程简述

    一.第一阶段:硬件引导启动 1.Bios上电自检, 初始化硬件:显卡,内存,磁盘 2.根据Bios设置找到启动介质,初次安装linux系统一般是CD-ROM或者U盘启动,已安装Linux系统选择本地H ...

最新文章

  1. hdu A + B Problem II(大数相加,数组实现)
  2. 这才是程序员的爱情观!?
  3. css水平垂直居中_css 如何实现水平居中、垂直居中(超全面)
  4. 为什么在重庆比北京更容易迷路?Nature子刊:大脑GPS系统呈蜂窝状,弯路多了就“变形”...
  5. 【风控策略】(未完成)策略规则与模型评分
  6. VTK:相互作用之RubberBand2D
  7. .class文件格式(java字节码文件的格式)
  8. 【转】1.A(译).NET4.X 并行任务中Task.Start()的FAQ
  9. MTK 驱动(85)----RPMB key introduction
  10. Redis常见客户端异常汇总
  11. 图片验证,滑块验证解决
  12. 程序员简洁简历模板分享
  13. 问卷与量表数据分析(SPSS+AMOS)学习笔记(五) : 问卷星数据处理
  14. Mybatis官方文档:简介和入门
  15. 德芙网络营销策略ppt_德芙网络营销案例ppt采集
  16. 【总结】深度学习阶段性总结
  17. SwiftUI macOS源码大全之倒计时App基于coredata(教程含源码)
  18. 27岁,今年研究生上岸,有什么忠告可以给我的?
  19. 【北京】No317| 在京在读研究生,可静可动,乐观,脾气好,很佛系的女孩,喜欢运动,旅游,读书,小吃货一枚,谈恋爱比较粘人...
  20. noip2014:螺旋矩阵_网页设计:2014年值得关注的20个最热门趋势

热门文章

  1. python 面部识别_一文教你在Python中打造你自己专属的面部识别系统
  2. 安卓前端布局Android,Android开发的几种常见布局
  3. linux系统文件的复制,linux操作系统文件复制操作
  4. mysql 数据复制停止工作_linux – Mysql GTID复制停止工作
  5. php缓存注入,利用Thinkphp 5缓存漏洞实现前台Getshell
  6. php创建无限级树型菜单以及三级联动菜单
  7. Makefile文件编写规则
  8. 前端面试题Vue-cli目录汇总
  9. 前端学习(3119):react-hello-react的解决类中方法的this
  10. [css] 如何取消从父级元素继承下来的CSS样式呢?