我们知道linux 下shell可以被分为交互式脚本和非交互式脚本。
交互式脚本即 输入命令之后shell会等待你的输入,当你输入之后命令会被立即提交从而执行。这个时候我们常见的终端bash,以及login提示等都是交互式命令。
非交互式脚本即shell解释器不需要等待终端的输入,自己去执行脚本中的命令,当遇到脚本中的EOF则结束。

交互式脚本因为需要等待终端命令的输入,与终端进行交互,当将交互式脚本推后台;此时后台程序视图读取终端,此时终端驱动程序将检测这种情况,并向后台作业发送一个特定信号SIGTTIN,该信号会停止此后台程序,并向用户发送通知。最终推后台的进程会出现stopped状态。
交互式脚本的退后台使用./camSvr < /dev/null &使用null作为输入设备,此时脚本可以正常执行。

异常场景:
编写服务器程序:calc_osd_memory.sh,使用top抓取指定进程内存信息,并进行分析记录日志。./calc_osd_memory.sh正常执行,但是当执行./calc_osd_memory.sh &推后台出现stopped进程被终止。

因为脚本中存在交互式命令top,使用方式为/usr/bin/top -n 1 -c -u ceph,此时脚本中主要获取信息的外界命令为top,经过分析出现此时stopped是通过其他程序或者脚本在非交互模式下调用top就会出现,解决方式是去掉top的交互模式,使用批处理模式如下:
增加-b参数:/usr/bin/top -n 1 -c -b -u ceph
参数描述:
Starts top in ‘Batch’ mode, which could be useful for sending output from top to other programs or to a file.
In this mode, top will not accept input and runs until the iterations limit you’ve set with the ‘-n’ command-line option or until killed.

记一次shell脚本推后台stopped的问题相关推荐

  1. Shell 脚本中后台启动服务 与 nohup

    Shell 脚本中后台启动服务& 与 nohup 最近工作中遇到在shell脚本中启动服务并让服务在后台运行,同时不影响shell脚本向下执行的场景.进行了一些调查,实践,借鉴一些网上的资源进 ...

  2. Shell脚本:后台运行

    1. 名词解释 名词(中文) 名词(英文) 解释 会话 Session 每打开一次终端(本地或远程)登录Linux,都会生成一个新的会话:除此之外,程序中也可以调用函数setsid创建一个新的会话:脚 ...

  3. linux下开机自动启动,定时运行shell脚本

    Shell 脚本与window/dos 下的批处理相似,也就是用各类命令预先放入一个文件中,方便一次性执行的的一个程序文件,主要是方便管理员进行设置或者管理用. 一.shell脚本 在Linux下,我 ...

  4. shell脚本实现后台长ping

    情景描述:怀疑有设备存在偶发性的网络抖动导致的丢包,需要从服务器对设备尽心ping测,由于时间跨度长需要实现后台运行. 分析实现: 1.为了便于跟踪,需要输入ping测结果并追加时间信息,原以为使用语 ...

  5. Android脱离USB执行Shell脚本的方法

    前言: 安卓自动化测试过程中,经常需要测试机脱离 Usb执行相关 shell 脚本,之前在网上看了很多的例子,没有真正可以直接断开 USB执行 shell 脚本的实例,所以一直也没太搞明白,最近有时间 ...

  6. shell脚本一键同时推送代码至github和gitee

    自己写的东西,要同时推送多个git地址,解决办法如下: 1.先要初始化你的git              进入自己的项目目录,然后执行 git  init cd /app/code/go-study ...

  7. linux打开pythonshall,linux系统shell脚本后台运行python程序

    python开发的同学们应该都知道怎么样去启动一个python应用,但是一旦我们把python应用部署到linux服务器上该如何启动呢? 方式①:就是使用进程管理工具,比如supervisor.想了解 ...

  8. linux后台执行shell脚本

    目的:Linux后台执行脚本并监控 编写shell脚本 vi /tmp/ceshi.sh #!/bin/sh while [ true ]; dosrync -avzP src dest /bin/s ...

  9. rocketmq python消息堆积_编写shell脚本监控rocketMQ消息堆积并推送钉钉

    1.利用mqadmin命令,编写shell监控脚本(宿主机上需要安装RocketMQ客户端) !/bin/bash GroupInfo=sh /app/alibaba-rocketmq/bin/mqa ...

最新文章

  1. 你对象怎么找的?日本网友:国家用AI给分配的
  2. java出现令牌语法错误_java – 令牌“;”,“{”在此令牌之后的语法错误
  3. VTK修炼之道52:图形基本操作进阶_多分辨率策略(模型抽取的三种方法)
  4. Java魔法类:Unsafe应用解析
  5. PHP安全,防止远程非法提交
  6. tensorflow之XORerr1例题
  7. 未来10年,将被人工智能/机器学习/大数据颠覆的三大行业
  8. 尚硅谷 谷粒学院 毕业设计 在线教育 部署文档
  9. java语言jsp技术_JavaWeb:JSP技术基础
  10. 风暴数码论坛教程-JAVA环境配置
  11. NLP中Tokenizers总结(BPE、WordPiece、Unigram和SentencePiece)
  12. 生活中,如何学会放下
  13. 5.MySQL高级语句,你给我学!
  14. 智能家居出货量将达5.4亿台,全屋智能线下渠道是推广主力
  15. matlab 求解高次方程,Matlab求解多元高次方程组
  16. mysql数据库:varchar类型可以存储多少个汉字,多少个数字
  17. pandas实现分类汇总--小计,总计
  18. (0105)iOS开发之iOS13 暗黑模式(Dark Mode)适配
  19. 网站服务器费用是什么,建网站费用都包含什么
  20. ChatGPT教程之 06 ChatGPT 和 DevOps 用例概述

热门文章

  1. 160630、五句话搞定JavaScript作用域
  2. CUDA编程遇到的问题
  3. 关于Page翻页效果--Page View Controller
  4. C# 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
  5. 爱不释手(Typingfaster)1.78beta,重大升级,欢迎试用,期待反馈。
  6. Winograd,GEMM算法综述(CNN中高效卷积实现)(下)
  7. 单片机c语言实现表格数据调用,哪位师傅知道51单片机怎样编写子程序?C语言的。在主程序里调...
  8. 三层架构中ajax,基于mvc三层架构和ajax技术实现最简单的文件上传
  9. 交换排序图解_图解简单选择排序
  10. span 可编辑 控制数量_CSS如何限制显示的文本字数