zoukankan      html  css  js  c++  java
  • #每日Linux小练习#11作业命令继续分析

    在对比中发现不同

    1、进程作业的概念有所区别。一个正在执行的进程称为一个作业,而且作业可以包含一个或多个进程,尤其是当使用了管道和重定向命令。例如“nroff -man ps.1|grep kill|more”这个作业就同时启动了三个进程

    2、作业和bash是相关的,在进行工作管理的行为中,其实每个工作都是目前bash的子进程,即彼此之间具有相关性。比如无法使用job control的方式由tty1的环境去管理tty2的bash。

    前台作业和后台作业

    只有前台程序可以接受终端输入,后台作业试图读终端,并不是一个错误,但是终端驱动程序会检测出来,然后发送一个特定信号SIGTTIN给后台作业,就会暂停后台作业。我们想要它运行,就必须转到前台来。前台后台转换的命令是:fg,bg。

    1、在终端下,前台程序运行时,用户只能给该程序输入输出,如果需要给终端输入指令,是不可行的。需要将现在的前台程序终止或者暂停

    2、后台程序无法接收终端的指令,需要转到前台才行

    3、前台后台转换的命令是:fg,bg。

    fg %1表示将1号作业转为前台,bg %4表示将4号作业转为后台。

    fg - 表示将-号的那个工作号码取出来

    4、kill命令可以管理后台中的工作

    kill -signal %jobnumber

    signal:

    只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。 下面是常用的信号:

    HUP    1    终端断线

    INT     2    中断(同 Ctrl + C)

    QUIT    3    退出(同 Ctrl + )

    TERM   15    终止

    KILL    9    强制终止

    CONT   18    继续(与STOP相反, fg/bg命令)

    STOP    19    暂停(同 Ctrl + Z)

    echo "PID is $$"
    echo "Start 20150813jobControl_test.sh"
    ./20150813jobControl_test.sh &
    ./20150813jobControl_test.sh &
    ./20150813jobControl_test.sh &
    echo "Finish the test"
    
    
    sleep 1
    jobs
    
    kill -9 %1
    echo "kill -19 %1"
    
    sleep 1
    jobs
    
    kill -18 %1
    echo "kill -18 %1"

    5、脱机管理

    需要注意的是,工作管理中所谓的“后台”指的是终端机模式下可以避免 ctrl-C 中断的一个情境,并不是放到系统的后台去。

    工作管理的后台依旧与终端机有关。

    对于nohup前台运行的程序,如果在工作尚未结束的情况下脱机,该工作不会继续下去,而是被中断掉

    对于nohup后台运行的程序,如果在工作尚未结束的情况下脱机,该工作会继续下去

    nohup [命令与参数]          #在前台运行

    nohup [命令与参数]  &      #在后台运行

  • 相关阅读:
    软件工程第1次阅读作业
    软件工程第0次作业
    OO第四次博客
    OO第三次总结
    OO第二次总结
    OO第一次总结
    提问回顾与个人总结
    结对项目:最长单词链
    第一次阅读作业
    第四次博客
  • 原文地址:https://www.cnblogs.com/wuqi/p/4737656.html
Copyright © 2011-2022 走看看