Linux中運行程序的一些方法介紹


1.存在的問題

我們常常需要連接遠程服務器,在服務器上運行我們的程序,當程序運行時間不長的時候我們完全可以等待其運行完成。但當程序運行時間特別長的時候,我們和服務器的連接不可能一直建立,所以這個時候在后台進行程序的執行就會顯得特別重要。一般情況下,我們使用ssh連接遠程服務器時,如果由於網絡問題或者其他問題造成連接中斷,終端會收到 HUP(hangup)信號從而關閉其所有子進程,就會使我們的程序運行中斷,這也不是我們想要的結果。

2.相關命令的介紹

Ctrl+c:該命令是強制終止程序的執行;

Ctrl+z:該命令是中斷任務執行,但是該任務並沒有結束,進程仍然存在只是被掛起的狀態;

jobs:該命令用來查看后台被掛起的任務,命令執行后會顯示進程對應的作業號(中括號內為作業號),注意作業號和進程號是不一樣的;

bg:該命令用來將掛起的命令繼續在后台執行,相當於原來的命令加了&。使用時在后面加上對應的作業號;

fg:該命令用來將掛起的命令繼續在前台執行,使用時在后面加上對應的作業號;


3.nohup命令

該命令的用途就是讓提交的命令忽略 hangup 信號,使用的時候加在相應的命令前面就可以,一般情況下會結合&使用。
這種情況下就會使程序在后台運行,並且不會受到因為網絡問題造成連接中斷的影響,並且會將程序運行結果輸出到nohup.out文件中。

4.kill命令

kill -stop pid:該命令可以將正在運行的進程暫停
kill -cont pid:該命令可以將暫停的程序繼續在后台運行

5.結果輸出到文件中

平常我們執行程序的時候都會將結果直接顯示在前台終端界面,即使我們將程序在后台運行,程序的結果也還是會在界面上打印,如果我們不想受到這樣的影響,可以是結果定向輸出到文件中以方便后面的查看,具體的方法是使用>操作符,后面跟着結果文件,如果我們是想實現追加的效果就需要使用>>操作符。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM