標籤:
背景:
最近在執行一些長時間程式的時候,老是一不小心忘了輸入‘&’ , 結果終端就卡在那裡了,很是鬱悶
以前總是再新開一個終端。
今天翻看《鳥哥的linux私房菜》的時候,發現介紹vim的時候介紹了一個ctrl-z命令可以將當前的程式切到後台,很好用!可是怎麼再切回去呢?搜了下,見下文:
-----------轉載自:http://blog.chinaunix.net/uid-10219166-id-2968756.html
----------- 以下是原文
假設你發現前台啟動並執行一個程式需要很長的時間,但是需要幹其他的事情,你就可以用 Ctrl-Z ,終止這個程式,然後可以看到系統提示:
[1]+ Stopped /root/bin/rsync.sh
然後我們可以把程式調度到後台執行:(bg 後面的數字為作業號)
#bg 1
[1]+ /root/bin/rsync.sh &
用 jobs 命令查看正在啟動並執行任務:
#jobs
[1]+ Running /root/bin/rsync.sh &
如果想把它調回到前台運行,可以用
#fg 1
/root/bin/rsync.sh
這樣,你在控制台上就只能等待這個任務完成了.
& 將指令丟到後台中去執行
[ctrl]+z 將前台任務丟到後台中暫停
jobs 查看背景工作狀態
fg %jobnumber 將背景任務拿到前台來處理
bg %jobnumber 將任務放到後台中去處理
kill 管理背景任務
命令運行時使用CTRL+Z,強制當前進程轉為後台,並使之停止。
1. 使進程恢複運行(後台)
(1)使用命令bg
Example:
[email protected]:~/unp/tcpcliserv$ ./tcpserv01
*這裡使用CTRL+Z,此時serv01是停止狀態*
[1]+ Stopped ./tcpserv01
[email protected]:~/unp/tcpcliserv$ bg
[1]+ ./tcpserv01 & *此時serv01運行在後台*
[email protected]:~/unp/tcpcliserv$
(2)如果用CTRL+Z停止了幾個程式呢?
Example:
[email protected]:~/unp/tcpcliserv$ jobs
[1]- Running ./tcpserv01 &
[2]+ Stopped ./tcpcli01 127.0.0.1
[email protected]:~/unp/tcpcliserv$ bg %1
bash: bg:任務 1 已轉入後台 *後台運行*
2. 使進程恢複至前台運行
Example:
[email protected]:~/unp/tcpcliserv$ ./tcpserv04
[1]+ Stopped ./tcpserv04
[email protected]:~/unp/tcpcliserv$ fg
。/tcpserv04
總結:
(1) CTRL+Z停止進程並放入後台
(2) jobs 顯示當前暫停進程
(3) bg %N 使第N個任務在後台運行(%前有空格)
(4) fg %N 使第N個任務在前台運行
預設bg,fg不帶%N時表示對最後一個進程操作!
--------- 以上是原文
後記: 《鳥哥的linux私房菜》後面也有章節介紹fg和bg,只是當時還沒看到
[轉] linux中巧用ctrl-z後台運行程式