文档章节

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

心中的理想乡
 心中的理想乡
发布于 2017/02/25 21:32
字数 711
阅读 6
收藏 0
点赞 0
评论 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
    说明:将要在开机时候启动的脚本,使用全路径的方式写入这些个文件当中
 

© 著作权归作者所有

共有 人打赏支持
心中的理想乡
粉丝 8
博文 68
码字总数 61989
作品 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
ctrl-z、fg、bg、nohup、setsid、()与&、disown、screen

My Tips: Ctrl -z -> suspend fg -> foreground bg -> background 关于ctrl-z、fg、bg、nohup、setsid、()与&、disown、screen 如果前台执行一个程序很久没执行完,那么可以用 ctrl + z 挂起......

AlphaJay
2012/07/05
0
0
终端会话和孤儿进程组(POSIX-2.2.2.52)--解释问题

终端的问题涉及几个概念,那就是进程组,会话,作业,下面会分别进行介绍。会话包含了一系列的进程,这些进程按照不同的执行内容会组织成若干进程组,一个会话内的所有进程都必须是该会话首长...

晨曦之光
2012/04/10
228
0
哪里学Linux开发?作业怎么控制Jobs?

使用Ctrl+Z组合键停止shell运行中的作业。停止作业后,Linux系统会让用户终止或重启它。可以使用kill命令终止进程。重启停止的进程需要向它发送SIGCONT信号。 重启、停止、终止和恢复作业的操...

长沙千锋
05/03
0
0
linux暂停和恢复进程

kill -STOP 1234 将该进程暂停。 如果要让它恢复到后台,用kill -CONT 1234 (很多在前台运行的程序这样是不行的) 如果要恢复到前台,请在当时运行该进程的那个终端用jobs命令查询暂停的进程...

晓亮1210
2013/09/23
7.9K
0
linux命令后台运行技巧整理(2)

所有内容搜集于网络,部分做了简单翻译 一、& 在Linux中,当在前台运行某个作业时,终端被该作业占据;而在后台运行作业时,它不会占据终端。可以使用命令把作业放到后台执行。实际上,这样是...

一点灵犀
2015/04/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

python以太坊类库web3.py概览

python通过web3.py库与以太坊交互共同入口是web3对象。web3对象提供API接口,python开发应用与以太坊进行交互如钱包创建、支付、转账等连接JSON-RPC服务器进行。 Providers提供者 Providers使...

智能合约
7分钟前
0
0
【Android学习笔记】设置App启动页

先将启动页放到项目资源中,图片一般是1080*1920的jpg。 新建一个activity,如图: 创建成功之后,打开刚刚创建的activity,来进行代码的编写: >>>阅读全文

全部原谅
8分钟前
0
0
什么是React-redux、为什么使用React-redux、怎么使用React-redux

1、什么是React-redux React-redux是用于连接React和Redux的 2、为什么使用React-redux 使用React-redux可以使redux部分代码更简洁更明了,比如组建中需要使用到的数据都在mapStateToProps方...

kimyeongnam
11分钟前
0
0
Spring核心——Stereotype组件与Bean扫描

在注解自动装载中介绍了通过注解(Annotation)自动向Bean中注入其他Bean的方法,本篇将介绍通过注解(Annotation)向容器添加Bean的方法。 Spring的核心容器提供了@Component和@Bean注解来标...

随风溜达的向日葵
11分钟前
0
0
利用世界杯,读懂 Python 装饰器

Python 装饰器是在面试过程高频被问到的问题,装饰器也是一个非常好用的特性, 熟练掌握装饰器会让你的编程思路更加宽广,程序也更加 pythonic。 今天就结合最近的世界杯带大家理解下装饰器。...

猫咪编程
15分钟前
0
0
flink fold example

flink fold例子 import org.apache.flink.api.common.functions.*;import org.apache.flink.streaming.api.datastream.DataStream;import org.apache.flink.streaming.api.environment.S......

coord
16分钟前
0
0
c++ qt 组播总结

每个人都有不同的认知规律和习惯, 有的人喜欢搞一套严密的大理论, 论述起来滔滔不绝, 不管自己懂不懂, 反正读者/听者是没搞懂。 有的人喜欢从实践出发, 没看到代码, 不运行一下, 不看...

backtrackx
20分钟前
0
0
Sublime text2安装json格式化插件SublimePrettyJson[Windows]

一、下载SublimePrettyJson插件包 https://github.com/dzhibas/SublimePrettyJson 二、将下载的文件解压放到在package目录下面 C:\Users\lucky\AppData\Roaming\Sublime Text 3\Packages 每个......

lazy~
20分钟前
0
0
安装vue-cli 报4058错误

1. 4058是网络代理错误。 安装淘宝源修改一下就可以了: npm --registry https://registry.npm.taobao.org info underscore 改为cnpm执行: cnpm install --global vue-cli 安装成功: 试试版...

MrBoyce
21分钟前
0
0
CPU飙升分析

1、top -----看具体的进程 2、top -H -p pid ------该进程的线程 3、printf 0x%x 15248 ------将线程改为16进制 4、jstack 进程...

北极之北
24分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部