文档章节

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
    说明:将要在开机时候启动的脚本,使用全路径的方式写入这些个文件当中
 

© 著作权归作者所有

共有 人打赏支持
心中的理想乡
粉丝 16
博文 73
码字总数 80276
作品 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

没有更多内容

加载失败,请刷新页面

加载更多

Mac OS X下Maven的安装与配置

Mac OS X 安装Maven: 下载 Maven, 并解压到某个目录。例如/Users/robbie/apache-maven-3.3.3 打开Terminal,输入以下命令,设置Maven classpath $ vi ~/.bash_profile 添加下列两行代码,之后...

TonyStarkSir
今天
3
0
关于编程,你的练习是不是有效的?

最近由于工作及Solution项目的影响,我在重新学习DDD和领域建模的一些知识。然后,我突然就想到了这个问题,以及我是怎么做的? 对于我来说,提升技能的项目会有四种: 纯兴趣驱动的项目。即...

问题终结者
今天
4
0
打开eclipse出现an error has occurred see the log file

解决方法: 1,打开eclipse安装目录下的eclipse.ini文件; 2,打开的文本文件最后添加一行 --add-modules=ALL-SYSTEM 3,保存重新打开Eclipse。...

任梁荣
昨天
4
0
搞定Northwind示例数据库,无论哪个版本的SQLServer都受用

Northwind数据库 从这里可以找到突破口: http://social.msdn.microsoft.com/Forums/zh-CN/Vsexpressvb/thread/8490a1c6-9018-40c9-aafb-df9f79d29cde 下面是MSDN: http://msdn2.microsoft......

QQZZFT
昨天
1
0
mysql主从同步,安装配置操作

准备 两台mysql服务,我这里准备了如下: 主库:192.168.176.128 从库:192.168.176.131 如何在Linux上安装mysql服务,请看https://blog.csdn.net/qq_18860653/article/details/80250499 操作...

小致dad
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部