Linux下工作管理Job control小结

1.工作管理

         Linux下的工作管理指的是,当我们通过tty*登录系统并取得shell之后,我们在shell下同时进行多个工作的行为管理。

 

2.工作管理的方式         

        在Linux下工作管理有如下几种方式:

        a)&:直接将命令丢到后台中“执行”

        在一个命令的字符串后加上&,就可以了。例如,tar -zpcf   /tmp/etc.tar.gz   /etc  &

        当使用&进行工作管理时,命令并丢到后台中执行,此时shell会给予这个命令一个“工作号码(job number)”。当这个命令在后台被执行完成之后,就会将执行结果输出到屏幕上。为了避免影响工作,我们可以使用数据流重定向的方法来解决这个问题。

Remarks:这里的工作号码job control只与你自己当前的shell环境有关。

        b)Ctrl+z:将目前的工作丢到后台中“暂停”

        当在执行某个命令的过程中,通过Ctrl+z快捷键,就可以将当前命令丢到后台中“暂停”了。

 

3.查看工作管理机制下面的job工作状态

         查看job的工作状态可以通过jobs命令来查看。

[n]中括号里面的数字n表示的是工作号码job number。其中加号+表示最近被放到后台中的工作号码,也是工作管理相关操作命令默认取用的工作。减号-代表最近最后第二个被放置到后台中的工作号码。而超过最后第三个以后的工作,就不会有+/-符号存在了。

 

4.工作管理的相关的操作命令

          a)fg:将后台工作拿到前台来处理

          通过fg %jobnumber将第jobnumber号工作放到前台来执行。也可以使用fg +或者fg -来将+/-号命令取到前台来执行。

          b)bg:让工作在后台下的状态由暂停变成运行中

          通过bg %jobnumber将第jobnumber号工作在后台中变成运行中的状态。也可以使用bg +或者bg -来将+/-号命令在后台中有暂停状态变成运行中状态。

          c)kill:使用kill命令向某个工作发送管理信号

           通过kill -signal %jobnumber向指定工作号码的工作发送管理信号。例如-9表示通常是在强制删除一个不正常的工作时所使用。-15则是以正常步骤结束一项工作。

           Remarks:kill -signal num,不加%号表示的是向第num号进程发送管理信号。

 

5.nohup [命令与参数]与nohup [命令与参数] &

使用&或者Ctrl+z来进行工作管理时,这些工作放到后台了,但这些工作仍然是当前shell进程的子进程,当当前终端机tty退出后,所有的子进程也就是工作会被终止。也就是当我们退出账号登陆时,就是这个情况,我们后台的工作都会终止了。

解决上述这个问题,可以通过nohup [命令与参数]或者nohup [命令与参数] &来解决。我认为通过nohup可以将后台工作直接变成和shell进程平起平坐的进程了,也就是不再是当前shell进程的子进程了。当当前用户退出终端机后,工作还会在linux系统上。nohup会将标准输出和标准错误输出都默认写入到./nohup.out文件中,当然我们也可以使用重定向输出到其他文件中,例如nohup command > log.txt 2>&1 &

备注:nohup是指运行一个命令,让这个命令的执行进程忽略来自操作系统的Hangup信号。因为当用户通过ssh/telnet远程登录系统时,当主动或被动地断开终端机时,操作系统就会向该终端机下所有的进程发送Hangup信号,让他们终止运行。如果使用nohup执行命令,那么就会让进程忽略Hangup信号,然后继续运行。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值