Linux作业管理,Linux 作业管理(job control)

当登录系统取得bash shell之后,在单一终端机下同时进行多个作业的行为管理。

在进行作业管理的行为中,其实每个作业都是目前bash的子进程,即彼此之间是有相关性的。登录一个终端出现提示符让你操作的环境成为前台 (foreground),至于其它作业就可以放入后台(background)去暂停或运行。注意:放入后台的作业必须不能与用户互动。

Bash的作业控制必须要注意到的限制是:

这些作业所触发的进程必须来自于你shell的子进程

前台:你可以控制于执行命令的这个环境成为前台的作业

后台:可以自行运行的作业,你无法使用[ctrl+c]终止它,可使用bg/fg调用该作业

后台中执行的进程不能等待terminal/shell的输入

1 Job control管理 [作业管理]

Bash下面的Job分前台与后台,然后再后台里面的作业状态又可分为暂停与运行中。

直接将命令丢到后台中执行的&

例子:

1

tar –zpcf /tmp/etc/targ.gz /etc &

后面加入上&表示在后台处理,回车后看到bash会给予这个命令一个作业号码(job number),就是那个[1]。但是这个标准输出和错误输出还是都屏幕上。所以应该使用重定向处理。

1

tar –zpcf /tmp/etc.tar.gz /etc/ > /tmp/log.txt 2>&1 &

将目前的作业丢到后台中暂停:ctrl-z

比如正在使用vi,却发现有个文件不知道放在哪里,需要到bash环境下进行查找,此时只要将vi丢到后台当中等待即可。

例子:

1

2

3

4

vi ~/.bashrc

# 在vi的一般模式下,按下[ctrl]-z这两个键

[1]+ Stopped

# 顺利取得前台控制权

按下[ctrl]-z这两个键,屏幕上出现[1],表示这是第一个作业,而那个+代表最近一个被丢进后台的作业,且目前在后台下默认会被取用的那个作业(与fg这个命令有关)。而那个stopped则代表目前这个作业的状态。默认,使用[ctrl-z]丢到后台当中的作业都是暂停状态。

查看目前的后台作业状态:jobs

用法:

1

2

3

4

5

jobs [-lrs]

参数:

-l 除了列出job number与命令串之外,同时列出PID的号码

-r 仅列出正在后台run的作业

-s 仅列出正在后台当中暂停(stop)的作业

一般,直接执行jobs即可。如果还想知道该Job number的PID号码,可以加上-l这个参数。在输出的信息中,那个+代表默认的取用作业。如果目前有两个作业在后台当中,两个作业都是暂停的,而如果仅输入fg时,那么那个标志了+的作业会被拿到前台当中来处理。其实+代表最近被放到后台的作业号码,-代表最近第二个被放置到后台当中的作业号码。而超过最后第三个以后的作业,就不会有+/-符号存在了。

将后台作业拿到前台来处理:fg

1

2

3

4

fg %jobnumber

参数:

%jobnumber: jobnumber为作业号码(数字)。注意:%可有可无

如果fg –则把标志了-的那个作业拿出来。

让作业在后台下的状态变成运行中:bg

由于按下ctrl-z后作业会放到后台停止,如果要让其继续在后台运行起来,需要使用bg,它和fg的用法一样。

管理后台当中的作业:kill

如果需要删除某个作业,需要使用kill。

1

2

3

4

5

6

7

8

9

用法:

kill –signal %jobnumber

参数:

-l 列出目前能够使用的信号(signal)有哪些

signal 代表给予后面接的那个作业什么样的指示。

-1 重新读取一次参数的配置文件

-2 代表与由键盘输入ctrl-c同样的操作

-9 立刻强制删除一个作业

-15 以正常的程序方式终止一项作业

注意:-9通常是在强制删除一个不正常的作业时所使用的,-15则是以正常步骤接受一项作业(15也是默认值)

另外,kill后面接的数字默认是PID,如果想要管理bash的作业控制,就得要加上%数字了。

(责任编辑:最模板)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值