linux進程后台運行及輸出重定向


本機環境為ubuntu 14.04

以ping www.baidu.com為例:

1.程序的前台運行

ping www.baidu.com

可以看到,屏幕上輸出了baidu返回的結果

 

2.實現程序后台的運行

nohup ping www.baidu.com &

運行此命令后,屏幕顯示出進程號(如:[1] 13668),出現新的一行,並進入等待狀態:

  $ nohup: 忽略輸入並把輸出追加到"nohup.out"

此時,程序前台運行時的輸出,默認從屏幕重定向到了當前路徑下的nohup.out中。

ctrl+c強制結束或直接關閉此終端后,多次查看nohup.out,其內容是一直變化的。說明剛剛的那條命令已經成功在后台運行。

 

3.實現輸出重定向

如果后台同時運行多個程序,它們的輸出全都在nohup.out中,閱讀起來很不方便。可通過重定向到不同文件中來解決這個問題。

linux啟動后,會默認打開3個文件描述符,0表示標准輸入,1表示正確輸出,2表示錯誤輸出。

nohup ping www.baidu.com 1>result.out 2>result.out & //將正確輸出和錯誤輸出均寫入result.out文件

 

4.關閉示后台運行的進程

如果我們想關閉剛剛的后台運行的進程,又忘記了剛剛顯示的進程號,可以用如下方法:

ps -e  //顯示所有后台運行的進程
ps -e | grep ping //顯示所有帶有ping的進程

找到對應的進程號,輸入以下命令即可關閉進程

kill [進程號]

 

參考資料:

   http://www.cnblogs.com/chengmo/archive/2010/10/20/1855805.html

   http://forum.ubuntu.org.cn/viewtopic.php?t=392696


免責聲明!

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



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