centos7 后台執行命令


  在終端或控制台工作時,可能不希望由於運行一個作業而占住屏幕,因為可能還有更重要的事情要做,比如閱讀電子郵件。對於密集訪問磁盤的進程,更希望它能夠在每天的非負荷高峰時間段運行(例如凌晨)。為了使這些進程能夠在后台運行,有幾種選擇方法可供使用。

  & 

  當在前台運行某個作業時,終端被該作業占據;可以在命令后面加上& 實現后台運行。例如:sh test.sh & 

  適合在后台運行的命令有f i n d、費時的排序及一些s h e l l腳本。在后台運行作業時要當心:需要用戶交互的命令不要放在后台執行。如果放在后台運行的作業會產生大量的輸出,最好使用下面的方法把它的輸出重定向到某個文件中:

   nohup 

  使用&命令后,作業被提交到后台運行,當前控制台沒有被占用,把當前控制台關掉(退出帳戶時),作業就會停止運行。nohup命令可以在退出帳戶之后繼續運行相應的進程。nohup就是不掛起的意思( no hang up)。該命令的一般形式為:

  nohup command &

  如果使用nohup命令提交作業,那么在缺省情況下該作業的所有輸出都被重定向到一個名為nohup.out的文件中,除非另外指定了輸出文件:

  nohupcommand>myout.file2>&1& 

  2>&1 是將標准出錯重定向到標准輸出,這里的標准輸出已經重定向到out.file文件,即將標准出錯也輸出到out.file文件中。最后一個&, 是讓該命令在后台執行。

  試想2>1代表什么,2與>結合代表錯誤重定向,而1則代表錯誤重定向到一個文件1,而不代表標准輸出;換成2>&1,&與1結合就代表標准輸出了,就變成錯誤重定向到標准輸出

  ctrl + z 

  可以將一個正在前台執行的命令放到后台,並且處於暫停狀態。

  Ctrl+c 

  終止前台命令。

  jobs 

  查看當前有多少在后台運行的命令。 

   

 

  


免責聲明!

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



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