shell编程总结12(信号与作业)
shell编程总结12(信号与作业)
心中的理想乡 发表于9个月前
shell编程总结12(信号与作业)
  • 发表于 9个月前
  • 阅读 3
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

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

共有 人打赏支持
粉丝 0
博文 60
码字总数 46203
×
心中的理想乡
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: