1. 程式人生 > >linux job control管理

linux job control管理

管理 使用 stopped 會有 nbsp pid bash top span

  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管理