後臺執行任務,不在終端打印信息

參考文獻 &命令把做業放到後臺執行,不佔用終端(屏幕)html

&命令: linux

xxx >/dev/null 2>&1 &                           屏蔽一切log
xxx >/tmp/xxx.log 2>&1 &                     能夠在xxx.log中看日誌
shell

      適合在後臺運行的命令有find、費時的打印做業、費時的排序及一些shell腳本。在後臺運行做業時要小心:須要用戶交互的命令不要放在後臺執行,由於這樣你的機器就會在那裏傻等。bash

     不過,做業在後臺運行同樣會將結果輸出到屏幕上。若是放在後臺運行的做業會產生大量的輸出,最好使用下面的方法把它的輸出重定向到某個文件中:
 command  >out.file 2>&1 &
 在上面的例子中,全部的標準輸出和錯誤輸出都將被重定向到一個叫作out.file 的文件中。當你成功地提交進程之後,就會顯示出一個進程號,能夠用它來監控該進程,或殺死它。
session


Linux後臺進程管理 注意在使用jobnumber時當前任務的概念ssh

jobs [-l] 查看當前在後臺正在運行或者被掛起的任務。ide

fg [%jobnumber] 將後臺任務調至前臺繼續運行工具

Ctrl+z 將一個在前臺正在執行的命令放到後臺,並處於暫停狀態 (能夠組合bg使用) -- 掛起前臺進程 (Ctrl+c 終止前臺進程)ui

bg [%jobnumber] 講一個在後臺暫停的命令變爲繼續執行(在後臺)spa

終止後臺進程

1.jobs 查看kill %jobnumber

2.ps 查看 kill [-SIGKILL] pid


[譯]後臺執行UNIX/Linux命令和腳本的五種方法

5 Ways to Execute UNIX / Linux Commands (and Shell Scripts) in Background

1.nohup 避免退出登陸時後臺執行的命令或者腳本被自動終止

目前看來在Ubuntu Server上不存在這個問題,可是從新登陸以後沒法再鏈接到這個會話,jobs沒法查看後臺任務。

2.screen命令執行,從新登陸後鏈接到會話  linux下的screen命令用來後臺執行

3.at 指定日期與時間容許,做爲批處理執行

4.watch連續執行命


ssh 關閉後仍保持當前運行的進程 --  相似前述內容的一個綜合以及一些新的東西,nohup命令參考

使用screen命令簡單介紹以下:

screen perl static-100-10.pl

須要中斷鏈接:

Ctrl+a d

在每一個screen session 下,全部命令都以 ctrl+a(C-a) 開始。

查詢screen進程:

ps x

查詢screen做業

screen -ls

wKiom1NmPTDADDKRAAIGNuBUqfI364.jpg

wKiom1NmPxPjFFL2AADSqpYpD_4070.jpg

重連

screen -r 22011


screen介紹

1.使用telnet或SSH遠程登陸linux時,若是鏈接非正常中斷,從新鏈接時,系統將開一個新的session,沒法恢復原來的session,screen命令能夠解決這個問題。Screen工具是一個終端多路轉接器,在本質上,這意味着你可以使用一個單一的終端窗口運行多終端的應用。screen爲多重視窗管理程序,此處的視窗是指一個全屏幕的文字模式畫面。一般只有在使用telnet登入主機或是使用老式的終端機時,纔有可能用到screen程序。

2.語法

screen [-AmRvx -ls -wipe][-d <做業名稱>][-h <行數>][-r <做業名稱>][-s <shell>][-S <做業名稱>]

3.參數說明

-A  將全部的視窗都調整爲當前終端機的大小。
-d<做業名稱>  將指定的screen做業離線。
-h<行數>  指定視窗的 緩衝區行數。
-m  即便當前已在做業中的screen做業,仍強制創建新的screen做業。
-r<做業名稱>  恢復離線的screen做業。
-R  先試圖恢復離線的做業。若找不到離線的做業,即創建新的screen做業。
-s<shell>  指定創建新視窗時,所要執行的shell。
-S<做業名稱>  指定screen做業的名稱。
-v  顯示版本信息。
-x  恢復以前離線的screen做業。
-ls或--list  顯示當前全部的screen做業。
-wipe  檢查當前全部的screen做業,並刪除已經沒法使用的screen做業。

4.使用說明

在每一個screen session 下,全部命令都以 ctrl+a(C-a) 開始。
  C-a ? -> Help,顯示簡單說明
  C-a " -> 列出終端列表
  C-a A -> 重命名終端
  C-a c -> 建立新的終端,並切換到該終端
  C-a d -> 暫時斷開會話,但全部任務都依然執行
  C-a K -> 關閉當前終端,並切換到下一個終端(當沒終端時 退到原始shell終端)
  C-a n -> 切換到下一個終端
  C-a p -> 切換到上一個終端
  C-a t -> 顯示當前時間,和系統的 load
  C-a S -> 新建水平線分割終端
  C-a Tab -> 水平線切換終端
  C-a X -> 關閉當前終端
  C-a + -> 擴大當前終端
  C-a - -> 縮小當前終端

  C-a [Space] -> 窗口切換
  C-a 0-9 -> 在0-9個終端之間切換
  C-a C-a -> 最近使用的2個窗口切換
  C-a w -> 列出終端列表
  C-a x -> 鎖住當前窗口,需用用戶密碼解鎖
  C-a z -> 把當前會話放到後臺執行,用 shell 的 fg 命令則可回去。

  exit:關閉當前終端 (注:和「C-a c」同樣
Ctrl-a:
  :screen <command> 新建 screen 終端,並運行命令<command>
  :resize <height> 改變當前窗口高度爲<height>
  :quit 退出 screen 關閉全部 screen 終端,結束其中全部任務

  Ctrl-a <Esc> 進入選擇模式
  <PageUp> 或 Ctrl-u 光標上移一頁
  <PageDown> 或 Ctrl-d 光標下移一頁
  <Left> 或 h 光標左移一格
  <Down> 或 j 光標下移一行
  <Up> 或 k 光標上移一行
  <Right> 或 l 光標右移一格
  <Space> 選擇開始,選擇結束
  <Esc> 退出選擇模式
  Ctrl-a ] 粘貼選擇的內容

來源:百度百科
參考連接 linux 技巧:使用 screen 管理你的遠程會話

相關文章
相關標籤/搜索