跳转至

任务与进程管理

约 964 个字 52 行代码 17 张图片 预计阅读时间 4 分钟

任务

& - 将命令置于后台运行

执行情况
执行情况

如不配置重定向,程序直接在终端输出内容,影响使用。

程序直接在终端输出内容
程序直接在终端输出内容

重定向

  • >:标准输出写到文件(会清空已有内容)
  • >>:标准输出追加到文件
  • 2>2>> :标准错误重定向
  • 2>&1:将标准错误也输出到和标准输出一样的位置

/dev/null:相当于 Linux 中的黑洞,不需要的数据可以抛到这里

Ctrl + Z - 将目前任务丢到后台中暂停

将目前任务丢到后台中暂停
将目前任务丢到后台中暂停

jobs - 管理任务

1
2
3
4
5
6
7
8
ding@ding-server:~$ jobs
[1]-  Stopped                 vim
[2]   Running                 ping -c 200 127.0.0.1 > /dev/null &
[3]+  Stopped                 nano
ding@ding-server:~$ jobs -l     # 同时列出 PID
[1]- 3789471 Stopped                 vim
[2]  3790019 Running                 ping -c 200 127.0.0.1 > /dev/null &
[3]+ 3790030 Stopped (signal)        nano

任务编号后的符号表示的含义:

  • +:最近被放到后台的任务代码(默认的使用任务)
  • -:最近第二个被放到后台的任务代码

fg - 将放在后台的任务置于前台运行

# 将最近被放到后台的任务(+)放在前台
fg

# 将最近第二个被放到后台的任务(-)放在前台
fg -

# 将特定任务编号的任务放在前台
fg %任务编号
# 或
fg 任务编号

bg - 将放在后台的任务置于后台运行

# 将最近被放到后台的任务(+)置于后台运行
bg

# 将最近第二个被放到后台的任务(-)置于后台运行
bg -

# 将特定任务编号的任务置于后台运行
bg %任务编号
# 或
bg 任务编号

执行完 bg 后,任务状态由 Stopped 变为 Running,且命令后多了一个 &

1
2
3
4
5
6
7
root@ding-server:~# find / > /dev/null
^Z  # 按 Ctrl + Z
[1]+  Stopped                 find / > /dev/null
root@ding-server:~# jobs ; bg ; jobs
[1]+  Stopped                 find / > /dev/null    # 之前停止
[1]+ find / > /dev/null &
[1]+  Running                 find / > /dev/null &  # 之后运行

进程

进程优先级

分为 PRI (priority) 和 NI (nice)。前者由内核动态调整,后者用户可以有限制地自定义,都是越低优先级越高。

root 用户可以调所有进程的 NI,范围为 -20~19;普通用户仅可调自己进程的 NI,范围为 0~19,且只能调高。

一般的,调整 NI 后的 PRI = 调整前的 PRI + NI,但最终结果由系统动态决定。

向进程发送信号

常用于重载、强制关闭进程、关闭后台进程。

常用的信号:

  • 1SIGHUP :重新读取一次成熟的配置文件(类似 reload
  • 2SIGINT :等价于从键盘输入 Ctrl + C
  • 9SIGKILL :立即强制删除任务
  • 15SIGTERM :以正常方式终止任务

uptime - 打印系统运行时长和平均负载

uptime
uptime

平均负载:表示单位时间内的平均进程数量,计量状态为运行中的或不可中断的进程。如果超过 1,注意查看系统进程是否太过频繁。

ps - 查看进程

查看自己的 bash 相关进程

ps -l

查看自己的 bash 相关进程
查看自己的 bash 相关进程

查看全部进程

ps aux

查看全部进程
查看全部进程

显示出所有进程,但是输出和 ps -l 的格式一样

ps -lA

列出类似进程树的进程显示

ps axjf

列出类似进程树的进程显示
列出类似进程树的进程显示

top - 查看系统信息和进程信息

进入

top

界面
界面

  • q:退出
  • ?:显示帮助

系统信息

系统信息
系统信息

top 命令执行结果的前 5 行为系统整体的统计信息,其所代表的含义如下:

  1. uptime 一样
  2. 进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数
  3. 用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等
  4. 物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量
  5. 虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量

进程信息

进程信息
进程信息

  • P:按 CPU 使用率排序(默认)
  • M:按内存使用率排序
  • N:按 PID 排序
  • T:按 CPU 时间排序

改变 NI 值

  1. 上下箭头找到需要的进程
  2. r 键(renice)
  3. 输入 PID 号 输入 PID 号
  4. 输入要调整到的值,回车 输入要调整到的值
  5. 结果 结果

向进程传信号

  1. 按上下箭头找到需要的进程
  2. k 键(kill)
  3. 输入 PID 号 输入 PID 号
  4. 输入要传递的值,回车 输入要传递的值
  5. 结果 结果

在命令行中设置 NI 值

1
2
3
4
5
# 在执行命令时设置
nice -n 数字 命令

# 中途修改
renice 数字 PID

killkillall - 在命令行中管理进程

一般在 root 用户下运行。

1
2
3
4
5
6
7
# 给单个进程发送信号(需知道 PID 或 任务编号)
kill [-信号] PID
# 或
kill [-信号] %任务编号

# 给多个进程发送信号(需知道命令名的一部分)
killall [-i] [-信号] 命令名的一部分  # 如果加 -i 参数,发送信号前都会让你确认 

htop - 比 top 功能更多

需要安装。

可以通过键盘或鼠标操作。

htop 界面
htop 界面

参考资料

  • 鸟哥的Linux私房菜. 基础学习篇 / 鸟哥著 ; Linux 中国繁转简. -- 4版. -- 北京 : 人民邮电出版社, 2018.3; ISBN 978-7-115-47258-8
  • Linux就该这么学 / 刘遄著. -- 北京 : 人民邮电出版社, 2017.11; ISBN 978-7-115-47031-7
  • Linux 教程 | 菜鸟教程