zoukankan      html  css  js  c++  java
  • Linux21:工作管理

    工作管理

    工作管理是在单一终端机接口处同时进行多个工作的行为管理,其实同时开启多个终端机一样能同时完成多个任务,但是由于某些情况下可能限制用户只能开启一个终端机接口,此时就要用工作管理。

    在进行工作管理时,所有的工作都是当前bash的子进程,当前的工作管理无法从终端tty1管理tty2,进行工作管理有几个限制条件:

    1、这些工作所触发的进程必须来源于当前shell的子进程

    2、可以放入背景运行的工作不能等待系统交互,也不能用ctrl+c终止

    丢到背景执行:&

    在执行的命令后加&可以直接将任务放在后台执行,执行这条语句后前台会打印一个用中括号括起来的job号码和指令触发的PID,有时虽然任务被放到后台,但是输出信息还是会挤满前景,此时可以将输出信息重定向到一个文件中,然后放入后台执行,这样可以保证其他指令输入时不被打断:

    tar -zpcvf /tmp/etc.tar.gz /etc > /tmp/log.txt 2>&1 &

    丢到背景中暂停执行:ctrl+z

    按ctrl+z可以将命令放在背景中,执行后会出现中括号括起来的job号码。

    控制job的运行

    显示后台运行的程序:jobs -l,-l的意思是显示pid。jobs命令会显示多行,一行代表一个后台工作,行首代表后台工作编号,后面会跟一个+或-,也可能没有符号标记,+代表最后放入后台的工作(也是恢复时首先恢复的),-代表倒数第二个放入后台的工作。每个job都会有对应的状态,Running代表后台运行,Stoppd代表暂停。

    恢复后台运行的程序:fg %工作号不加%代表恢复+对应的后台工作。

    让后台暂停的工作恢复到后台执行:bg %工作号(这个命令必须不能和前台有交互才能恢复到后台执行,如top)

    强制移除后台任务:kill -9 %job号,正常结束后台任务:kill -15 %job号

    脱机管理

    之前的所有放入后台的程序仅仅是将任务放到当前bash的背景下运行,而不是放到系统的背景中运行,也就是说远程连接到linux将任务放到背景中执行,断开和linux的连接会导致这些任务中断,如果想断开连接后继续生效,可以用at指令,也可以用nohup指令:nohup 命令 &

    这个指令的效果就相当于放入后台执行,只不过退出登录后依然在执行,但是注意nohup不支持bash内建的命令。

  • 相关阅读:
    31、状态模式(详解版)
    33、中介者模式(详解版)
    36、备忘录模式(详解版)
    34、迭代器模式(详解版)
    30、责任链模式(职责链模式)详解
    29、命令模式(详解版)
    32、观察者模式(Observer模式)详解
    37、解释器模式(详解版)
    35、访问者模式(Visitor模式)详解
    28、策略模式(策略设计模式)详解
  • 原文地址:https://www.cnblogs.com/yinyunmoyi/p/12539010.html
Copyright © 2011-2022 走看看