文档章节

shell编程总结12(信号与作业)

心中的理想乡
 心中的理想乡
发布于 2017/02/25 21:32
字数 711
阅读 6
收藏 0

1、常见的Linux下的信号:
    1    SUGHUP    挂起进程    
    2    SUGINT    终止进程
    3    SUGQUIT    停止进程
    9    SIGKILL    无条件终止进程
    15    SIGTERM    可能的话终止进程
    17    SIGSTOP    无条件停止进程,但不是终止进程
    18    SIGTSTP    停止或暂停进程,但不终止进程
    19    SIGCONT    继续运行停止的进程
    说明:bash shell会忽略收到的任何3、15信号,正因为这样,交互式shell才不会被意外终止,但是bash shell会处理收到的1、2信号
2、使用ctrl+c来产生一个SUGINT进行终止正在运行的进程,使用ctrl+z组合来产生一个SIGTSTP的信号,来暂停或者停止进程,可是不终止

3、使用kill -9 PID进行无条件终止进程

4、捕捉信号:trap commands signals
    举例:trap "echo 'sorry!I have trapped ctrl-c'" SIGINT SIGTERM
    另外可以捕捉脚本退出:trap "echo byebye" EXIT
    移除捕捉:trap - EXIT

5、后台模式运行脚本:/test1 &
    输出:[1] 1987  #第一个是shell分配给进程的作业号,第二个是PID
    说明:每个后台进程都绑定到了该终端会话上,如果终端会话退出了,进程也会退出

6、在非控制台下运行脚本:nohup
    说明:主要用途是可以在终端会话退出之后,静默启动的进程也不会结束,一直后台运行,并且会叫标准输出与标准错误输出都重定向到一个名为nohup.out的文件里面
    使用:nohup ./test1 &


7、查看当前终端会话中的作业:jobs
    几个重要的参数:
                    -l 列出PID(很重要,可以直接查看PID然后kill掉)
                    -p 只列出PID
                    -r 只列出运行中的作业
                    -s 只列出已停止的作业
                    

8、脚本中输出当前shell脚本运行时的PID,使用:$$

9、作业列出之后的+-号说明:带加号的作业会被当成默认的作业,在使用作业控制命令时,如果未在命令行指定任何的作业号,该作业会被当成操作对象,带减号的作业则会在当前默认作业完成处理时成为下一个默认作业。任何时候只有一个带加号与带减号的作业。

10、每次都忘记的一个重启后台作业的命令:bg(以后台模式重启后台停止的进程)
        举例:bg 2
        说明:后面加上的数字是作业号
        另外:fg(以前台的模式重启后台停止的进程)
11、在文件中定义自己的开机脚本:
    debian    /etc/init.d/rc.local
    Ubuntu    /etc/rc.local
    说明:将要在开机时候启动的脚本,使用全路径的方式写入这些个文件当中
 

© 著作权归作者所有

共有 人打赏支持
心中的理想乡
粉丝 19
博文 75
码字总数 101203
作品 0
深圳
程序员
私信 提问
脚本运行控制

Linux通过信号在运行在系统的进程之间通信,用信号来停止启动及无条件终止进程。同样也可以用信号来控制shell脚本的运行。 1.Linux系统信号 Linux系统和应用程序可以生成30多个信号,最常见的...

Caishu
2016/05/20
170
0
Shell主要逻辑源码级分析 (2)——SHELL作业控制

版权声明:本文由李航原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/110 来源:腾云阁 https://www.qcloud.com/community 作业控制本身也是基于进程控...

偶素浅小浅
2016/11/01
34
0
如何在 Linux 系统中结束结束进程或是中止程序

在 Linux 中有几种使用命令行或图形界面终止一个程序的方式。 进程出错的时候,您可能会想要中止或是杀掉这个进程。在本文中,我们将探索在命令行和图形界面中终止进程或是应用程序,这里我们...

08%
06/04
0
0
如何在 Linux 系统中结束进程或是中止程序

在 Linux 中有几种使用命令行或图形界面终止一个程序的方式。 进程出错的时候,您可能会想要中止或是杀掉这个进程。在本文中,我们将探索在命令行和图形界面中终止进程或是应用程序,这里我们...

08%
06/11
0
0
ssh 关闭后仍保持当前运行的进程

ssh 关闭后仍保持当前运行的进程 由于各种原因,需要通过ssh登录linux或者unix主机,很多时候我们需要通过ssh的终端启动一 些服务或者运行一些程序,但是默认情况下,当我们关闭ssh终端连接,...

今幕明
2014/11/06
0
1

没有更多内容

加载失败,请刷新页面

加载更多

Windows 环境下安装 Oracle JDK

本页面中描述了如何在 Window 环境下安装 Oracle JDK。 我们使用的版本是 Window 10,我们需要安装的版本是 Oracle JDK 8u191。 检查当前版本 在进行新的 JDK 安装之前,你需要检查下你本地的...

honeymose
12分钟前
0
0
用any-loader封装jQuery的XHR —— 随便写着玩系列

哎,都说没人用JQuery啦,叫你别写这个。 其实我也是好高骛远使用过npm上某个和某个很出名的XHR库,嗯,认识我的人都知道我喜欢喷JQ,以前天天喷,见面第一句,你还用JQ,赶紧丢了吧。但我也...

曾建凯
今天
4
0
聊聊storm的AggregateProcessor的execute及finishBatch方法

序 本文主要研究一下storm的AggregateProcessor的execute及finishBatch方法 实例 TridentTopology topology = new TridentTopology(); topology.newStream("spout1", spout......

go4it
今天
3
0
大数据教程(7.5)hadoop中内置rpc框架的使用教程

博主上一篇博客分享了hadoop客户端java API的使用,本章节带领小伙伴们一起来体验下hadoop的内置rpc框架。首先,由于hadoop的内置rpc框架的设计目的是为了内部的组件提供rpc访问的功能,并不...

em_aaron
今天
5
0
CentOS7+git+github创建Python开发环境

1.准备CentOS7 (1)下载VMware Workstation https://pan.baidu.com/s/1miFU8mk (2)下载CentOS7镜像 https://mirrors.aliyun.com/centos/ (3)安装CentOS7系统 http://blog.51cto.com/fengyuns......

枫叶云
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部