linux job control管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux job control管理相关的知识,希望对你有一定的参考价值。
bash只能管理自己的工作而不能管理其他bash的工作,即使是root用户也无法做到.bash的工作分为前台与后台.
我们在只有一个bash的环境情况下,如果要同时进行多个进程工作,那么可以把某一工作直接丢到后台去.
使用"&"直接将命令丢到后台.
-->while true;do echo a>/dev/null;done & [1] 1778 #[1]表示job number,1778表示循环进程号PID -->jobs # jobs用来查看后台的工作状态 [1]+ Running while true; do #[1]表示job number,+代表默认的取用工作,也是最近被放置到后台的工作号码 echo a > /dev/null; done &
#后台有两个进程
-->vi aaaaa
[2]+ Stopped vi aaaaa
-->
-->jbs -l #-l表示除了列出job number和我们执行的命令之外,同时列出进程号PID
[1]- 1778 Running while true; do #[-]表示第二近被放进后台的任务,如果超过3个,则不会有更多的+/-号了
echo a > /dev/null;
done &
[2]+ 35145 Suspended: 18 vi aaaaa #这里job number[2]后面的"+"表示job number [2]是最近被放到后台执行的命令.
#超过3个进程子后台
-->vi bb
[3]+ Stopped vi bb
-->
-->jobs
[1] Running while true; do
echo a > /dev/null;
done &
[2]- Stopped vi aaaaa
[3]+ Stopped vi bb
#jobs的参数
- -l 表示-l表示除了列出job number和我们执行的命令之外,同时列出进程号PID
- -r 列出正在运行的后台任务
- -s 列出stopped状态的后台任务
-->jobs -l
[1] 1778 Running while true; do
echo a > /dev/null;
done &
[2]- 35145 Suspended: 18 vi aaaaa
[3]+ 56362 Suspended: 18 vi bb
-->
-->jobs -lr
[1] 1778 Running while true; do
echo a > /dev/null;
done &
-->jobs -ls
[2]- 35145 Suspended: 18 vi aaaaa
[3]+ 56362 Suspended: 18 vi bb
-->
将后台工作拿到前台,可以使用 fg [%]+jobnumber,"%"可以省略.
fg 默认把有加号的拿到前台来.
fg N 把job number=N的任务拿到前台.
以上是关于linux job control管理的主要内容,如果未能解决你的问题,请参考以下文章
Nginx——Nginx启动报错Job for nginx.service failed because the control process exited with error code(代码片段
Linux 日常运维2.0&Job for network.service failed because the control process exited with error code.