linux程序已經在后臺運行凍結了_如何使程序在Linux后臺運行

經常在Linux上面運行程序都有這樣的體驗:

某個程序運行的時候,會產生大量的log(提示)信息,但實際上我們只想讓它跑一下而已,log暫時不需要或者后面才有需要。

同時run多個相同或者不同程序的時候,占了好多的命令行界面,作為一個強迫癥患者,就想要一個清爽的界面!

電腦不小心休眠了或者關機了,又或者wifi斷開了,沒網了,導致運行老久的程序直接中斷了,又得重頭開始!

◆◆◆ ?◆◆

先來解決第一個問題,如何放到后臺

很簡單,就是在所有命令后面都加個空格和“&”符號就可以了:

./test &

這樣一來,test程序就在后臺運行了。但是,這樣處理還不夠,因為這樣做雖然程序是在后臺運行了,但log依然不停的輸出到當前終端。因此,要讓終端徹底的清靜,還應將log重定向到指定的文件:

./test > out.txt 2>&1 &

2>&1是指將標準錯誤重定向到標準輸出,于是標準錯誤和標準輸出都重定向到指定的out.txt文件中,從此終端徹底清靜了。

如果程序已經在運行了,其實也是有辦法加入后臺的,只需使用快捷鍵?ctrl-z就能立馬放到后臺中了,不過這種方法其實是暫停了程序的運行,所以想要讓程序繼續運行還得輸入 “fg” 命令讓程序返回前臺來。

那現在程序在后臺運行了,我們怎么找到它呢?很簡單,有兩種方法:

1.jobs命令

jobs命令可以查看當前有多少在后臺運行。

jobs -l

此命令可顯示所有任務的PID,jobs的狀態可以是running, stopped, Terminated。但是如果任務被終止了(kill),shell 從當前的shell環境已知的列表中刪除任務的進程標識。

2.ps命令

ps -ef | grep test

用grep查詢ps -ef的結果,就可以顯示所有正在運行的任務中含有test關鍵詞的程序具體信息了。

◆◆◆ ?◆◆

nohup命令來避免程序中斷

在命令的末尾加個&符號后,程序可以在后臺運行,但是一旦當前終端關閉(即退出當前帳戶),該程序就會停止運行。那假如說我們想要退出當前終端,但又想讓程序在后臺運行,該如何處理呢?

實際上,這種需求在十分很常見,比如想遠程到服務器編譯軟件或者需要長時間的運行一個程序,但網絡不穩定,一旦掉線就中止了,很浪費時間。

在這種情況下,我們就可以使用nohup命令。nohup就是不掛起的意思( no hang up)。該命令的一般形式為:

nohup ./test &

如果僅僅如此使用nohup命令的話,程序的輸出會默認重定向到一個nohup.out文件下。如果我們想要輸出到指定文件,可另外指定輸出文件:

nohup?./test?>?out.txt?2>&1?&

這樣一來,多管齊下,既使用了nohup命令,也使用了&符號,同時把標準輸出/錯誤重定向到指定文件中。

PS:

還有一種也很常見的避免中斷的方法,就是使用screen命令,它能夠在一個真實終端下運行偽終端,我們可以在這個偽終端里面為所欲為,再也不用擔心網絡中斷會對我們的進程造成影響,也不用給每個命令前都加上“nohup”。

但是screen的缺點是開很多screen進程的時候,會生成多個偽終端,比較占用系統資源,另外批量生成screen的同時并在screen里面運行程序有些困難,不如nohup +?&批量處理的方便。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396166.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396166.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396166.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數字時代的精益組織

精益IT應該幫助簡化和改善我們為客戶創造價值的方式,并提出面向未來的更好的解決方案。未來的組織將專注于同行業的產品或業務流——其他的一切,包括專家和管理者在內,都是為了讓一線工作人員可以第一時間就做好,而又不會遇到任何…

9th week blog

1、第一個計算機語言:Fortran Fortran I誕生于1957年,由IBM設計,是世界上第一個真正的計算機語言。 Fortran I運行于IBM 704計算機上。 Fortran I支持:變量(變量名最多6個字符)、If和do語句、格式化IO。 不…

cas單點登錄系統:客戶端(client)詳細配置(包含統一單點注銷配置)

最近一直在研究cas登錄中心這一塊的應用,分享一下記錄的一些筆記和心得。后面會把cas-server端的配置和重構,另外還有這幾天再搞nginxcas的https反向代理配置,以及cas的證書相關的知識分享出來。 Cas由兩部分組成,Cas Server和Cas…

open 端口打開Linux,linux – nmap顯示打開的端口,但netstat沒有

如果我使用nmap掃描我的服務器,則表明已打開21端口.但是當我登錄到這個服務器并運行netstat時,我什么也看不見.$nmap -sT serverStarting Nmap 4.76 ( http://nmap.org ) at 2009-06-24 11:54 MSDInteresting ports on server (x.x.x.x):Not shown: 994 filtered portsPORT STA…

技能學習重要的古語_學習方法:最重要的開發人員技能

技能學習重要的古語by Preethi Kasireddy通過Preethi Kasireddy 學習方法:最重要的開發人員技能 (Learning How to Learn: The Most Important Developer Skill) Being an efficient learner is at least as important as being an efficient coder.成為高效的學習…

Git submodule 的筆記

這次不造輪子,寫寫文章。file最近想把自己的 blog 整理到 github 上,但由于其中依賴了一些主題以及插件,這時候 git submodule 就能很好的處理這種情況了。 submodule 是什么? submodule 顧名思義,子模塊。在一個項目依…

Leetcode690.Employee Importance員工的重要性

給定一個保存員工信息的數據結構,它包含了員工唯一的id,重要度 和 直系下屬的id。 比如,員工1是員工2的領導,員工2是員工3的領導。他們相應的重要度為15, 10, 5。那么員工1的數據結構是[1, 15, [2]],員工2的數據結構是…

linux進程管理類命令大全,Linux進程管理類命令

一、htop命令選項-d #:指定延遲時間間隔;-u UserName:僅顯示指定用戶的進程;-s COLUME:以指定字段進行排序;子命令:l:顯示選定的進程打開的文件列表;s:跟蹤選…

C#操作Excel

1.System.Data.DataTable連接數據庫 ExcelFile 是excel的完整路徑//OleDbConnection conExcel new OleDbConnection("ProviderMicrosoft.Jet.OLEDB.4.0;Data Source" ExcelFile ";Extended PropertiesExcel 8.0");//if (conExcel.State ConnectionStat…

android抓包工具——使用fiddler4在安卓手機抓包

Fiddler是一款非常流行并且實用的http抓包工具,它的原理是在本機開啟了一個http的代理服務器,然后它會轉發所有的http請求和響應,因此,它比一般的firebug或者是chrome自帶的抓包工具要好用的多。不僅如此,它還可以支持…

rust風化速度_反駁《Golang、Rust的執行速度的對照,讓人大吃一驚。》——不會別瞎說...

首先我無意引戰,但是今天看到某位同學的文章里有某些錯誤,不得不指正一下。1. 測量時間的時候我們使用 std::time::SystemTime::elapsed 即可,不必蹩腳的使用兩個 system 輸出出來還得手動算一下。(當然你說對Rust不熟也就無所謂了)2. 最重要…

css flexbox模型_代碼簡介:CSS Flexbox有點像旅行

css flexbox模型Here are three stories we published this week that are worth your time:這是我們本周發布的三個值得您關注的故事: CSS Flexbox explained by road tripping across the country: 7 minute read CSS Flexbox在全國各地的旅途中進行了解釋&#…

Sharepoint 2013設置customErrors

原文地址:http://www.cnblogs.com/renzh/archive/2013/03/05/2944309.html#3407239 一、首先設置IIS中的Web.config文件 找到對應的IIS應用程序目錄,如:C:\inetpub\wwwroot\wss\VirtualDirectories\3000 在此文件夾下包含一個web.config文件&…

ddt數據驅動

數據驅動原理 1.測試數據為多個字典的list類型 2.測試類前加修飾ddt.ddt 3.case前加修飾ddt.data() 4.運行后用例會自動加載成三個單獨的用例 5.測試結果: Testing started at 21:51 ...start!{username: selenium\xe7\xbe\xa4, psw: 232607095}end!start!{username…

http協議報文體_HTTP報文基本概念學習

HTTP是什么HTTP是HyperText Transfer Protocol的縮寫,中文就是超文本傳輸協議,所謂的超,是個學術用語,是基于某種事物增加了更多的信息維度,比如超像素xxx之類的.協議是什么,協議說白了就是約定,約定就是模板,就是表格,就和你去銀行辦手續一樣,客戶不知道要提供什么信息,銀行又…

yeoman_使用yeoman輕松創建Yeoman生成器

yeomanby Krist Wongsuphasawat克里斯特旺蘇帕薩瓦(Krist Wongsuphasawat) 使用yeoman輕松創建Yeoman生成器 (Creating Yeoman generators easily with yeoman-easily) I’ve used Yeoman to start many of my projects. It’s an amazing web scaffolding tool.我已經用Yeoma…

linux 輕量化圖形界面,YOXIOS 入門教程--基于Linux的 輕量化GUI圖形系統和硬件平臺(41頁)-原創力文檔...

YOXIOS --基于 Linux 的輕量化 GUI圖形系統和硬件平臺YOXIOS 入門教程基于 Linux 的 輕量化 GUI圖形系統和硬件平臺(V1.0 2020-05)提示:閱讀此文檔需要有一定的單片機開發、C/C編程語言、和使用 IDE開發工具的基礎YOXIOS (C) 2020 游芯科技第 1 頁 共 41 頁YOXIOS -…

第一階段 XHTML.定位樣式

一位初學php的隨堂筆記,記錄自己的成長! 1.清除浮動 (1)格式 clear:both清除兩邊|left清除左邊 right清除右邊 高度塌陷:父元素中的子元素都浮動,而父元素 沒有設置高,那父元素的高為0 (2)萬能清除(在父元素…

Canvas入門06-線段與像素邊界

我們知道,使用以下2個API可以繪制一條線段: moveTo(x, y) 向當前路徑中增加一條子路徑,該子路徑只包含一個點,此為線段的起始點lineTo(x, y) 將線段的下一個點加入子路徑中context.strokeStyle rgb(200, 200, 0); context.lineWi…