歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux服務器 >> linux中如何讓命令在後台運行

linux中如何讓命令在後台運行

日期:2017/3/2 16:33:19   编辑:Linux服務器

1.在下達的命令後面加上&,就可以使該命令在後台進行工作,這樣做最大的好處就是不怕被ctrl+c這個中斷指令所中斷。

  2. 那大家可能又要問了,在後台執行的程序怎麼使它恢復到前台來運行呢?很簡單,只用執行fg這個命令,就可以了。

  3.可能有些同學又要問了,我現在已經在前台運行的命令,我能把它放到後台去運行麼?當然可以了,只要執行ctrl+z就可以做到了。是不是很贊啊!

  4.說到這裡可能有些同學又要問了,如果我有多個進程在後台運行,那如何恢復到前台來執行呢?這時候就要用到jobs這個命令了,通過jobs這個命令,能夠列出所有在後台執行的進程,那個中括號([ ])裡面的數字就是 jobs 的代號啰 ,通過fg %number 就可以恢復指定的後台進程.

  使用nohup讓程序在遠程主機後台運行

  因為我購買的一個國外主機居然開放了Telnet權限,因此我也使用Telnet登錄上去玩玩Linux,但發現一關閉窗口就自動和主機斷開了,和Windows的終端不一樣,所以就上網找啊找,找到了一個從後台一直運行某個程序的方法。

  Unix/Linux下一般比如想讓某個程序在後台運行,很多都是使用 & 在程序結尾來讓程序自動運行。比如我們要運行mysql在後台:

  /usr/local/mysql/bin/mysqld_safe –user=mysql &

  但是加入我們很多程序並不象mysqld一樣做成守護進程,可能我們的程序只是普通程序而已,一般這種程序使用 & 結尾,但是如果終端關閉,那麼程序也會被關閉。但是為了能夠後台運行,那麼我們就可以使用nohup這個命令,比如我們有個test.php需要在後台運行,並且希望在後台能夠定期運行,那麼就使用nohup:

  nohup /root/test.php &

  提示:

  [~]$ appending output to nohup.out

  嗯,證明運行成功,同時把程序運行的輸出信息放到當前目錄的 nohup.out 文件中去。

  附:nohup命令參考

  nohup 命令

  用途:不掛斷地運行命令。

  語法:nohup Command [ Arg ... ] [ & ]

  描述:nohup 命令運行由 Command 參數和任何相關的 Arg 參數指定的命令,忽略所有掛斷(SIGHUP)信號。在注銷後使用 nohup 命令運行後台中的程序。要運行後台中的 [...]

  1. 後台運行的兩個命令 & 和 ctr+z

  一開始就+“&”具體方法是: [命令]空格[&]

  比如:

  [root@pcmxexweb etc]# find / -name xml &

  這樣,這個查找程序就會在後台運行。它運行的同時不影響你干別的事情。

  但是有的時候忘記了在命令之後加上‘&’符號,又不願意停下此命令重新改寫。這是可以按[ctrl+z],把當前程序切入後台。

  [root@pcmxexweb etc]# find / -name xml

  /etc/xml

  /usr/lib64/python2.4/xml

  /usr/share/vim/vim70/autoload/xml

  /usr/share/hplip/data/xml

  /usr/share/java-utils/xml

  /usr/share/xml

  /usr/share/doc/libvorbis-devel-1.1.2/xml

  /usr/local/apache-tomcat-6.0.14/webapps/examples/jsp/xml

  /webapp/web/jsp/xml

  [root@pcmxexweb etc]# find / -name xml

  /etc/xml

  /usr/lib64/python2.4/xml

  /usr/share/vim/vim70/autoload/xml

  /usr/share/hplip/data/xml

  /usr/share/java-utils/xml

  /usr/share/xml

  [1]+ Stopped find / -name xml

  但是要注意此時在後台的這個程序是處於 Stopped 狀態(注意看上面最後一行)。

  用jobs查看下後台運行程序。

  [root@pcmxexweb etc]# jobs

  [1]- Stopped find / -name xml

  [2]+ Stopped vi /etc/hosts

  可以用命令bg 2。效果和一開始就用find / -name xml&是一樣了,讓此命令在後台運行了。

  2.把後台程序調回前台

  根據jobs的顯示,配合使用fg 2 就把對應的程序調回前台了

Copyright © Linux教程網 All Rights Reserved