linux中讓命令在后臺運行_Linux教程
在Linux中我們在下達的命令后面加上&,就可以使該命令在后臺進行工作,這樣做最大的好處就是不怕被ctrl+c這個中斷指令所中斷。那大家可能又要問了,在后臺執行的程序怎么使它恢復到前臺來運行呢?很簡單,只用執行fg這個命令,就可以了。可能有些同學又要問了,我現在已經在前臺運行的命令,我能把它放到后臺去運行么?當然可以了,只要執行ctrl+z就可以做到了。是不是很贊啊!說到這里可能有些同學又要問了,如果我有多個進程在后臺運行,那如何恢復到前臺來執行呢?這時候就要用到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 就把對應的程序調回前臺了
- 相關鏈接:
- 教程說明:
Linux教程-linux中讓命令在后臺運行。