Linux - shell - jobs, fg, bg
-
概述
- jobs, fg, bg
-
背景
- 之前好像说过, 要讲 jobs
- 结果一直鸽到现在
- 从
vim - 执行 shell 命令
到& 与 nohup
, 都提到过这个东西
- 老老实实开始写吧
- 之前好像说过, 要讲 jobs
-
环境
-
OS
- win10
-
git-bash
- mintty-3.4.0
-
-
类型
- 这是一篇 教程类 的博客
1. 问题: 想查看后台的任务
-
概述
- rt
-
场景
- 使用了 & 或者 nohup &
- 或者使用了
ctrl + z
-
需求
- 查看
- 想看看都哪些任务被放到后台了
- 唤起
- 重新把任务拉回到前台
- 结束
- 直接把任务结束了
- 查看
2. jobs
-
概述
- jobs
-
jobs
-
概述
- linux 查看后台作业的工具
-
使用
# 1. 直接查看 > jobs ## 结果 [1]- Stopped vim chpt05.md [2]+ Stopped vim readme.md ## 1. [1] ### 当前 终端下, 后台作业的 作业编号 ## 2. - ### 这块我没找到资料, 我自己观察的初步结论... ### +: 表示 上一个 被放到后台的作业 ### -: 表示 上上一个 被放到后台的作业 ## 3. Stopped ### 状态, 这个后面会详细说 ## 4. vim chpt05.md ### 这个是后台进程的命令 # 2. 带 pid 的查看 > jobs -l # 3. 只想看 pid > jobs -p # 4. 查看 stopped 状态的作业 > jobs -s # 5. 查看 running 状态的作业 > jobs -r
-
-
疑问: 状态到底是怎么回事?
-
问题
- rt
- 有几种状态
- 都是什么意思
- 怎么相互转化
-
解答
- 尴尬了, 我也只知道一点...
- 目前我只见过 3 种
- stopped: 已经暂停了
- running: 正在后台运行
- done: 后台执行的任务, 已经完成了; 下次再用 jobs 查看, 就看不到任务了
- 转化的东西, 后面再说
-
3. jobs 状态转化
- 概述
- jobs 的状态转换
1. stopped
-
概述
- stopped 状态
-
操作
- 执行前台命令
ctrl + z
-
结果
- 命令被放到后台
- 暂停执行
- 状态是 stopped
2. running
-
概述
- running 状态
-
操作
-
方案1: &
> sleep 10 &
-
方案2: nohup &
> nohup sleep 10 &
-
-
疑问
-
问题1: 我想让后台暂停的程序继续运行
-
问题
- rt
-
解答
-
使用 bg 命令
# 如果执行成功, 命令会在 后台运行 # jobs 可以查看, 作业状态变为 runnning # 部分任务可能不支持, 比如 vim... > bg %<jobsId>
-
-
-
问题2: 后台任务执行的怎么样, 我不放心想看一看
-
问题
- rt
-
解答
-
使用 fg 命令
# 将的任务, 拉到前台来 > fg %<jobId>
-
-
-
问题3: 能不能让后台的 running 任务暂停?
-
问题
- rt
-
解答
- 我目前没什么好办法, 只有 先fg, 再
ctrl + z
- 我目前没什么好办法, 只有 先fg, 再
-
-
问题4: 能不能直接把后台的任务干掉?
-
问题
- rt
-
解答
- 获得 pid 之后, 直接用
kill
解决
- 获得 pid 之后, 直接用
-
-
ps
- ref
- bash
- 概述
- Job Control
- linux 后台 job 的间接
- jobs
- jobs 命令
- 篇幅有点长, 不太好找...
- Job Control
- 概述
- bash
尽量尝试解释清楚; 自己校对能力有限, 如果有错误欢迎指出