zoukankan      html  css  js  c++  java
  • 【Linux】工作管理

    • 在进行工作管理的行为中,其实每个工作都是目前bash的子进程,即彼此间是有相关性的。我们无法以job control的方式由tty1的环境去管理tty2的bash
    • 当只有一个终端时,可以出现提示符让你操作的环境就称为前台(foreground),至于其他工作就可以让你放入后台(background)去暂停或运行。要注意的是,放入后台的工作想要运行时,它必须不能够与用户互动。举例来说,vim绝对不可以在后台里面执行(running)。因为你没有输入数据它就不会跑。而且放入后台的工作是不可以使用[ctrl]+c来终止的。总之,要进行bash的job control 必须要注意到的限制是:
    • 这些工作所触发的进程必须来自于你shell的子进程(只管理自己的bash);
    • 前台:你可以控制与执行命令的这个环境称为前台(foreground)的工作;
    • 后台:可以自己运行的工作,你无法使用[ctrl]+c终止它,可使用bg/fg调用该工作;
      后台中『执行』的进程不能等待terminal/shell的输入(input)

    实际运行job控制的命令

    直接将命令丢到后台中『执行』的&
    $tar -rpcf /tmp/etc.tar.gz /etc &
    [1] 8400 <== [job number]/PID
    #在中括号内的号码为工作号码(job number),该号码与bash的控制有关
    #后续的8400则是这个工作在系统中的PID
    
    • 在输入一个命令后,在该命令的最后面加上一个『&』代表将该命令丢到后台中,此时bash会给予这个命令一个"工作号码"(job number),就是那个[1]。至于后面那个8400则是该命令所触发的PID了。
    • 如果输入几个命令后,突然出现如下数据
    [1]+ Done tar -rpcf /tmp/etc.tar.gz /etc
    

    就代表这个[1]工作已经完成了。

    将目前工作丢到后台中『暂停』:[ctrl]+z
    • 按下[ctrl]+z后,屏幕上会出现如下[1]+ Stopped command[1]表示这是第一个工作。而那个+代表最近一个被丢进后台的工作,且目前在后台默认会被取用的那个工作(与fg这个命令有关)。而那个Stopped则代表目前这个工作的状态。在默认状态下,使用[ctrl]+z丢到后台中的工作都是「暂停」的。
    查看目前的后台工作状态:jobs
    $jobs [-lrs]
    参数:
    -l:除了列出job number与命令串之外,同时列出PID的好吗
    -r:仅列出正在后台run的工作
    -s:仅列出正在后台当中暂停(stop)的工作
    
    查看目前的bash当中,所有的工作,与对应的PID
    
    
    • 用jobs这个命令可以查看后台中的工作,如果想要知道该job number的PID号码,可以加上-l这个参数。在输出的信息当中,有些任务号码后会有+-号码,+号代表最近被放到后台的工作号码,-代表最近最后第二个被放置到后台中的工作号码。而超过最后第三个以后的工作,就不会有+/-符号的存在了。
    将后台工作拿到前台来处理:fg

    fg %jobnumber
    参数:
    %jobnumber:jobnumber为工作号码(数字)。注意,那个%是可有可无的。

    先以jobs查看工作,再将工作取出
    $jobs
    [1]- 10314 Stopped vim ~/.bashrc
    [2]+ 10833 Stopped  find / -print
    $fg <==默认取出那个+的工作,即[2]
    $fg %1 <==直接规定取出的那个工作号码!
    
    让工作在后台的状态变成运行中:bg
    • bg %jobnumber将jobnumer的工作在后台启用
  • 相关阅读:
    NetworkManager——Linux强大的网络管理工具
    linux 添加用户、权限
    打造坚固的安全的Linux服务器(ssh登录篇)
    liunx下NetworkManager导致网卡不能启动
    Linux: service network/Network/NetworkManager
    linux里的bootproto的none,static,dhcp有什么区别
    swift protocol的几种形式
    函数式编程编程即高阶函数+monad
    泛型理论及抽象方向
    类型与函数的结合性:给类型添加函数?
  • 原文地址:https://www.cnblogs.com/vincently/p/6719053.html
Copyright © 2011-2022 走看看