1、工作管理简介

简单的说,工作管理就是管理前台的任务和后台的任务。

后台管理有几个重要事项需要注意:

  1. 前台是指当前可以操控和执行命令的这个操作环境,后台是指工作可以自行运行,但是不能直接用ctrl+c来终止它,只能使用fg/bg来调用工作。
  2. 当前的登录终端,只能管理当前终端的工作,而不能管理其他登录终端的工作。如tty1登录的终端,是不能管理tty2终端中的工作的。

    也就是说哪一个终端放入后台运行的程序,只有这个终端能查看到,其他的终端是查看不到该程序的。

    该终端一关闭,由这个终端放入后台运行的程序也会终止。

    也可以关闭终端让其放入后台的程序不终止,在本文第4点。
  3. 放入后台的命令必须可以持续运行一段时间,这样我们才能扑捉和操作这个工作。如果把ls命令放入后台执行,它很快就会执行完成,我们很难操作它。
  4. 放入后台执行的命令不能和前台用户有交互或需要前台输入,否则放入后台只能暂停,而不能执行。比如vim命令放入后台只能暂停,而不能执行,因为vim需要前台输入信息。

    还有一个top命令也不能放入后台执行,而只能放入后台暂停,因为top命令需要和前台有交互。

    也就是说,不是所有的命令都是可以在后台执行的, 只有这个程序不需要用户介入才可以。比如说:打包压缩、程序安装等。(重点)

2、如何把命令放入后台

有两种方法,分别如下:

(1)方式一

使用命令 &,把命令放入后台。

执行第一种把命令放入后台的方法是在命令后面加入空格&,这种方法放入后台的命令,在后台是执行状态。

但是注意,放入后台执行的命令不能与前台有交互,否则这个命令是不能在后台执行的。

举个例子:

# 1.打包etc目录
# 将tar命令放入后台执行,每个后台命令会分配一个工作号,
# 命令既然可以执行,就会有进程产生,所以也会有进程号。
[root@localhost ~]# tar -zcf etc.tar.gz /etc & # [工作号] 进程号
# 工作号:放入后台的顺序。
[1] 34567
[root@localhost ~]# tar: 从成员名中删除开头的“/”
tar: 从硬连接目标中删除开头的“/”
# 不清楚为何出现这两行,不影响,可以忽略。 # 2.查看后台进程
# 使用jobs命令查看
# 可以看到我们刚刚放入后台正在运行的命令。
# 运行状态Running。
[root@localhost ~]# jobs
[1]+ Running tar -zcf etc.tar.gz /etc & # 3.放入后台的命令执行完成后,会给你提示。
# 如果下面信息在终端上出现:
# 证明后台这个任务已经完成了,当然命令如果有执行结果的话,也会显示到操作终端上。
# [1]是这个命令的工作号,+号代表这个任务是最近一个被放入后台的工作。
[1]+ Done tar -zcf etc.tar.gz /etc

这样的好处,虽然tar命令在执行,但是当前终端我还是可以进行其他命令操作的。

(2)方式二

第二种方法是在命令执行过程中按ctrl+z快捷键,命令在后台是暂停状态。

使用这种方法放入后台的命令,就算是不和前台有交互,能在后台执行的命令,也是暂停状态。换句话说就是把一个服务先暂停,在放入后台。

ctrl+z快捷键就是暂停的快捷键。

示例:

# 还是上边打包etc目录
# 1.执行打包etc目录命令,然后快速按下ctrl+z
[root@localhost ~]# tar -zcf etc.tar.gz /etc
tar: 从成员名中删除开头的“/”
tar: 从硬连接目标中删除开头的“/”
^Z # 执行的过程中,按下ctrl+z快捷键
# 该tar命令被放入后台,工作号是1,状态是暂停。
[1]+ Stopped tar -zcf etc.tar.gz /etc # 2.这个时候查看后台运行的进程
# 可以看到该tar命令在后台是停止的状态,工作号是1。
[root@localhost ~]# jobs
[1]+ Stopped tar -zcf etc.tar.gz /etc

通过ps aux命令也可以看到该进程。可以看他该进程的状态是T,停止状态。

如下图所示:

也就是说,执行这个命令的进程就会一直卡在这。

你可以强制把这个进程kill掉,也可以把该进程恢复到前台继续进行操作(下一点会说明)。

3、后台管理命令

(1)查看后台的工作

使用jobs命令,如下:

[root@localhost ~]# jobs -l

选项:
-l:显示工作的PID

示例:

[root@localhost ~]# jobs
[1]- Stopped tar -zcf etc.tar.gz /etc
[2]+ Stopped top # 代-l选项查看
[root@localhost ~]# jobs -l
[1]- 6853 停止 tar -zcf etc.tar.gz /etc
[2]+ 6855 停止 (tty 输出) top
[root@Lyl ~]#

(2)将后台暂停的工作恢复到前台执行

使用fg命令,如下:

[root@localhost ~]# fg %工作号

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

示例:

# 执行下面命令,会直接跳转到top命令的交互界面
[root@localhost ~]# fg %2

(3)把后台暂停的工作恢复到后台执行

使用bg命令,如下:

[root@localhost ~]# bg %工作号

示例:

# 查看后台工作,可以看到tar命令是在后台停止状态
[root@localhost ~]# jobs -l
[1]+ 6853 停止 tar -zcf etc.tar.gz /etc # 把后台暂停的工作恢复到后台执行
[root@localhost ~]# bg %1
[1]+ tar -zcf etc.tar.gz /etc & # 查看后台工作,可以看到tar命令的状态是完成,
# 等一小下,在执行jobs查看后台工作,就会没有任何显示了。
# 证明后台停止的tar命令,已经在后台执行完成了。
[root@localhost ~]# jobs -l
[1]+ 6853 Done tar -zcf etc.tar.gz /etc

提示

你也可以直接把终端关闭掉,这些通过该终端被放入后台的工作,也会消失。

当然这不是正确关闭后台工作的方式。还是应该正确终止后台工作之后,再关闭终端。

4、后台命令脱离登录终端运行

我们已经知道把命令放入后台,只能在当前登录终端执行。

那如果我是远程管理的服务器,在远程终端中执行了后台命令,这时我退出登录,这个后台命令就不能继续执行了,这个后台命令会被终止。

但是我们确实需要在远程终端中执行某些后台命令,使这些命令在关闭终端的时候,也能够继续执行。

该如何执行呢?

  • 第一种方法是把需要后台执行的命令加入/etc/rc.local文件,让系统在启动时执行这个后台程序。

    这种方法的问题是,服务器时不能随便重启的,万一有临时后台任务,服务器不能重启,就不能执行。
  • 第二种方法是使用系统定时任务,让系统在指定的时间执行某个后台命令。

    这样放入后台的命令与终端无关,是不依赖登录终端的。
  • 第三种方法是使用nohup命令

    nohup命令的作用就是让后台工作在离开操作终端时,也能够正确的在后台执行。

    命令的格式如下:
    [root@localhost ~]# nohup [命令] &
    
    例如:
    # 用find命令,打助/下所有文件,放入后台执行。
    [root@localhost ~]# nohup find / -print > /root/file.log &
    [3] 23496
    [root@localhost ~]# nohup:忽略输入并把输出追加到"nohup.out"

常见的还是用第三种方式处理。

『学了就忘』Linux系统管理 — 85、工作管理相关命令的更多相关文章

  1. 『学了就忘』Linux系统管理 — 81、进程管理介绍

    目录 1.进程与线程的概念 2.什么是进程管理 3.进程管理的作用 4.Linux进程的几种状态 5.进程与线程的关系 (1)线程与进程的关系 (2)总结 1.进程与线程的概念 来源百度百科: 进程( ...

  2. 『学了就忘』Linux系统管理 — 82、Linux中进程的查看(ps命令)

    目录 1.ps命令介绍 2.ps aux命令示例 3.ps -le命令示例 4.pstree命令 1.ps命令介绍 ps命令是用来静态显示系统中进程的命令. 不过这个命令有些特殊,它部分命令的选项前不 ...

  3. 『学了就忘』Linux系统管理 — 83、Linux中进程的查看(top命令)

    目录 1.top命令介绍 2.top命令示例 3.top命令输出项解释 4.top命令常用的实例 1.top命令介绍 top命令是用来动态显示系统中进程的命令. [root@localhost ~]# ...

  4. 『学了就忘』Linux系统管理 — 84、Linux中进程的管理

    目录 1.Linux系统中的信号 2.杀掉进程的命令 (1)kill命令 (2)killall命令 (3)pkill命令 1.Linux系统中的信号 Linux系统中可以识别的信号较多,我们可以使用命 ...

  5. 『学了就忘』Linux系统管理 — 86、查看系统资源相关命令

    目录 1.vmstat命令 2.dmesg命令 3.free命令 4.查看CPU信息 5.查看本机登陆用户信息 (1)w命令 (2)who命令 6.uptime命令 7.查看系统与内核相关信息 1.v ...

  6. 『学了就忘』Linux文件系统管理 — 66、通过图形界面进行LVM分区

    目录 1.选择自定义分区 2.分配boot分区 3.创建LVM物理卷 4.生成卷组 5.创建逻辑卷 6.格式化安装 我们先用新安装Linux系统时的图形化界面,来演示一下LVM逻辑卷如何进行分区. 提 ...

  7. 『学了就忘』Linux基础 — 11、通过setup工具配置Linux系统IP地址

    目录 1.setup命令介绍 2.使用setup命令配置IP (1)执行setup命令 (2)进入图形化配置界面 (3)选择配置IP还是DNS (4)选择要配置的网卡 (5)进入IP地址配置页面 (6 ...

  8. 『学了就忘』Linux软件包管理 — 40、Linux系统软件包介绍

    目录 1.Linux系统软件包分类 2.源码包说明 3.二进制包说明 4.RPM包的优缺点 4.RPM包的两种安装方法 5.总结 1.Linux系统软件包分类 Linux系统下的软件包只有源码包和二进 ...

  9. 『学了就忘』Linux权限管理 — 53、ACL权限详解

    目录 1.什么是ACL权限 2.开启ACL 3.ACL权限的相关命令 (1)设定ACL权限 (2)查询文件的ACL权限 (3)设置文件ACL权限给用户组 (4)给文件夹和里边的文件同时赋予ACL权限 ...

随机推荐

  1. Cannot connect to runtime process

    发生一个或多个错误. 未能启动调试适配器.可以在输出窗口中查看额外的信息. Cannot connect to runtime process, timeout after 10000 ms (rea ...

  2. ICCV2021 | 渐进采样式Vision Transformer

    ​  前言  ViT通过简单地将图像分割成固定长度的tokens,并使用transformer来学习这些tokens之间的关系.tokens化可能会破坏对象结构,将网格分配给背景等不感兴趣的区域,并引 ...

  3. Qt5加载SVG格式的图片并更颜色

    QIcon MainWindow::qiconFromSvg(QString svg_path, QString color) { QPixmap img(svg_path); QPainter qp ...

  4. postman自动调用获取token

    Postman不光支持单次请求,还支持环境变量.全局变量.集合变量 本文使用Collection Variable Collection 如下图可以点击Collection然后可以添加请求和文件夹,以 ...

  5. 【NOI导刊200908模拟试题02 题4】【二分+Dijkstra】 收费站

    Description 在某个遥远的国家里,有n个城市.编号外1,2,3,-,n. 这个国家的政府修建了m条双向的通路.每条公路连接着两个城市.沿着某条公路,开车从一个城市到另一个城市,需要花费一定的 ...

  6. Atcoder Grand Contest 022 E - Median Replace(dp)

    Atcoder 题面传送门 & 洛谷题面传送门 首先考虑对于固定的 01 串怎样计算它是否可以通过将三个连续的 \(0\) 或 \(1\) 替换为其中位数得到.我们考虑单调栈,新建一个栈,栈底 ...

  7. python-django使用ORM模型增删改查CRUD

    from weibo.models import WeiboUser as User user_obj = User.objects.get(pk=1) user_obj.pk Out[4]: 1 u ...

  8. MySQL插入大量数据探讨

    笔者想进行数据库查询优化探索,但是前提是需要一个很大的表,因此得先导入大量数据至一张表中. 准备工作 准备一张表,id为主键且自增: 方案一 首先我想到的方案就是通过for循环插入 xml文件: &l ...

  9. 8.7 进程间的通讯:管道、消息队列、共享内存、信号量、信号、Socket

    进程间的通讯 进程间为什么需要通讯? 共享数据.数据传输.消息通知.进程控制 进程间的通讯有哪些类型? 首先,联系前面讲过的知识,进程之间的用户地址空间是相互独立的,不能进行互相访问,但是,内核空间却 ...

  10. 到底什么是自动化优先思维?与RPA有什么关系?

    基于RPA的自动化优先,正在成为广大组织的主流管理思维 到底什么是自动化优先思维?与RPA有什么关系? 如何用RPA简单快速的打造一个自动化优先的组织? 文/王吉伟 在IT运维项目中,组织经常会遇到先 ...