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 [命令与参数]  &      #在后台运行

  • 相关阅读:
    积水路面Wet Road Materials 2.3
    门控时钟问题
    饮料机问题
    Codeforces Round #340 (Div. 2) E. XOR and Favorite Number (莫队)
    Educational Codeforces Round 82 (Rated for Div. 2)部分题解
    Educational Codeforces Round 86 (Rated for Div. 2)部分题解
    Grakn Forces 2020部分题解
    2020 年百度之星·程序设计大赛
    POJ Nearest Common Ancestors (RMQ+树上dfs序求LCA)
    算法竞赛进阶指南 聚会 (LCA)
  • 原文地址:https://www.cnblogs.com/wuqi/p/4737656.html
Copyright © 2011-2022 走看看