首页 > 代码库 > linux job control管理
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管理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。