linux中的工作管理

1、工作管理简介

工作管理指的是在单个登录终端中(也就是登录的shell界面中)同时管理多个工作的行为。

注意事项:

  • 当前登录的终端,只能管理当前终端的工作,而不能管理其他终端的工作
  • 放入后台的命令必须可以持续运行一段时间,这样我们才能捕捉和操作这个工作
  • 放入后台执行的命令不能喝前台用户有交互或需要前台输入,否则放入后台只能暂停,而不能执行

2、工作管理方法

①、把进程放入后台的方法:

1、直接在要执行的命令后面加上"&"符号

如:tar -zcvf etc.tar.gz /etc &
# 把命令放入后台,并在后台执行

2、在命令运行过程中按下ctrl+z快捷键,放在后台暂停
如:top

②、查看后台的工作

jobs [-l]
选项:
-l: 显示工作的PID

注:"+"号表示最近一个放入后台的工作,也是工作恢复时,默认恢复的工作。"-"号代表倒数第二个放入后台的工作

③、将后台暂停的工作恢复到前台执行

fg %工作号

参数:
-%工作号: %号可以省略,但是注意工作号和PID的区别

④、将后台暂停的工作恢复到后台执行

bg %工作号
注:后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行

3、后台命令脱离终端运行

通常,把命令放入后台,只能在当前登录终端执行。一旦正确地退出或关闭终端,后台程序就会停止。但有些进程放入后台执行后能够脱离终端运行,一般这种进程是守护进程。让后台命令脱离登录终端执行的方法有:

  • 第一种方法是把需要后台执行的命令加入/etc/rc.local文件(推荐)
  • 第二种方法是使用系统定时任务,让系统在指定的时间执行某个后台命令
  • 第三种方法是使用nohup命令(标准方法)

①、方法一

直接将需要后台执行的命令加入到/etc/rc.local文件中,系统每次开机的时候都会去执行该文件中的内容,推荐使用这种方法,如下:

②、方法二

使用系统定时任务有时候会不生效,一般不推荐使用这种方法

③、方法三

nohup命令是一种标准的方法,使用的方法如下:

nohup [命令] &

实例如下:

首先准备一个需要长时间执行的脚本文件for.sh:

#!/bin/bash

for ((i=1;i<=1000;i=i+1))
    do
        echo 111 >> /root/for.log
        sleep 10      #休眠10秒钟
    done

然后,用nohup命令将/root/for.sh放入后台:

关闭终端centos6.10_root后,在终端2:(centos6.10_fz)中使用ps aux命令:

可以发现,此时箭头所指的进程,并没有因为它原来的终端关闭了就终止了。当然,在2号终端中使用jobs命令,发现没有结果

这个需要仔细思考下

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值