當前位置:首頁 » 操作系統 » linux後台執行

linux後台執行

發布時間: 2022-08-03 18:35:52

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

在下達的命令後面加上&,就可以使該命令在後台進行工作,而且不怕被ctrl+c這個中斷指令所中斷
具體命令格式是:
[命令]空格[&]
例如:
find / -name xml &
這樣,這個查找程序就會在後台運行。它運行的同時不影響你干別的事情。

『貳』 linux運行中的程序放到後台

fg 將後台中的命令調至前台繼續運行
bg 將一個在後台暫停的命令,變成繼續執行
jobs 查看當前有多少在後台運行的命令
舉例:
$ jobs
[1]- Stopped vim abc
[2]+ Stopped vim def此處使用jobs查看後台任務列表,看到有兩個進程處於後台
$ fg 2

執行該命令可將 "vim def"進程調至前台運行
在前台運行的程序中按ctrl + z 可以將一個正在前台執行的命令放到後台,並且暫停。

『叄』 如何讓Linux伺服器後台運行程序

bash test.sh &
後面那個符號就是放入後台執行

『肆』 如何在後台運行Linux命令並且將進程脫離終端

linux
任務管理-後台運行與終止
fg、bg、jobs、&、ctrl
+
z命令
一、
&
加在一個命令的最後,可以把這個命令放到後台執行
,如gftp
&,
二、ctrl
+
z
可以將一個正在前台執行的命令放到後台,並且處於暫停狀態,不可執行
三、jobs
查看當前有多少...

『伍』 linux如何設置程序開機啟動後台運行

有些時候,我們需要在終端啟動一個程序,並使之運行——但是如果關閉終端,那麼這個程序也就隨著關閉了。那麼有沒有什麼方法在關閉終端後,讓已經從這個終端啟動的程序繼續運行呢?有以下方法

1.讓linux忽略終端的hung up 信號,不關閉進程;

2.讓此進程變為終端的非子進程。

方法一:

在終端輸入命令:

# ./pso > pso.file 2>&1 &

解釋:將pso直接放在後台運行,並把終端輸出存放在當前目錄下的pso.file文件中。

當客戶端關機後重新登陸伺服器後,直接查看pso.file文件就可看執行結果(命

令:#cat pso.file )。

或者 在終端輸入命令:

# nohup ./pso > pso.file 2>&1 &

解釋:nohup就是不掛起的意思,將pso直接放在後台運行,並把終端輸出存放在當前

目錄下的pso.file文件中。當客戶端關機後重新登陸伺服器後,直接查看pso.file

文件就可看執行結果(命令:#cat pso.file )。

方法二:

實現方案就是nohup命令。

例如要啟動jboss,可以nohup ./run.sh &。這樣就可以了,結尾的「&」符號表示後台啟動jboss,從而不影響繼續運行其他命令。

但這樣有一個問題,nohup命令雖然可以讓linux「放過」這個進程,但是nohup會同時把進程的控制台輸出重定向到nohup.txt下(默認是這個文件),當然可以重定向為其他的文件,但是輸出總會有的。

如果jboss運行很長時間,而且如果有很多控制台輸出的話,nohup.txt文件就會變的很大很大。

通常項目中的日誌都會輸出到特定的日誌文件或者輸出到 資料庫 中,也就是說控制台的輸出對於程序的意義不大,那麼可不可以拋棄掉這些輸出呢?答案是肯定的。

這里講解一下linux的重定向(注意,是linux的重定向,不是針對nohup)。

0、1和2分別表示標准輸入、標准輸出和標准錯誤信息輸出,可以用來指定需要重定向的標准輸入或輸出。

在一般使用時,默認的是標准輸出,既1.當我們需要特殊用途時,可以使用其他標號。例如,將某個程序的錯誤信息輸出到log文件中:./program 2>log。這樣標准輸出還是在屏幕上,但是錯誤信息會輸出到log文件中。

另外,也可以實現0,1,2之間的重定向。2>&1:將錯誤信息重定向到標准輸出。

Linux下還有一個特殊的文件/dev/null,它就像一個無底洞,所有重定向到它的信息都會消失得無影無蹤。

結合nohup,我們可以這樣 nohup ./run.sh >/dev/null &

這是最簡單的一種方式,既保證了程序能夠一直後台執行,又能保證不會產生太大的nohup.txt文件。

方法三:

利用的linux的一個機制,讓程序在subshell中執行,方法很簡單,將命令用括弧() 括起來即可。

ps -ef | grep test

可以看到run.sh的父進程為1,不是當前終端了,這樣就能忽略hung up信號。

當然linux還可以動態的讓程序後台運行或不被hung up 信號關閉,例如disown命令,setid命令等。


方法四:

如果是使用Ubuntu的話,你可以利用CTRL+ALT+T組合鍵打開終端。當然你也可以使用超級鍵(Windows鍵)打開Dash,搜索「TERM」,然後點擊「Term」圖標來打開終端窗口。
對於其他的桌面環境來說,例如XFCE、KDE、LXDE、Cinnamon以及MATE,你可以在菜單中找到終端。有些環境會在停靠欄或者面板上麵包含終端圖標。
通常情況下,你可以在終端裡面直接輸入應用程序名來啟動一個應用程序。比如說,你可以通過輸入「firefox」來啟動Firefox。
在終端啟動應用程序的好處是,你可以包含一些額外的參數。
例如,你可以通過下列命令來打開一個Firefox瀏覽窗口,然後利用默認的搜索引擎搜索相關信息:
firefox -search "linux.cn"

你可能會注意到,如果你啟動Firefox,程序打開以後,回到了終端窗口控制,這就意味著你可以繼續在終端進行工作。
通常情況下,如果你在終端啟動了應用程序,控制會切換到新啟動的應用程序,只有程序被關閉以後才會重新切換到終端控制。這是因為你在前台啟動了這個程序。
如果要在Linux終端打開應用程序並且返回終端控制,那麼你需要將應用程序啟動為後台進程。
和下面所列的命令一樣,我們可以通過增加一個(&)符號,將應用程序在後台啟動。
libreoffice &

譯者註:如果需要加參數的話,記得把&符號放在最後。
譯者註:一般情況下,關閉終端時,在這個終端啟動的後台程序也會被終止,要使終端關閉以後,後台程序依然保持執行可以使用下列命令
nohup command [arg...] &
如果應用程序目錄沒有安裝在PATH變數包含的目錄裡面的話,我們就沒有辦法直接通過應用程序名來啟動程序,必須輸入應用程序的整個路徑來啟動它。
/path/to/yourprogram &

如果你不確定程序輸入哪個Linux目錄結構的話,可以使用find或者location命令來定位它。
可以輸入下列符號來找到一個文件:
find /path/to/start/from -name programname

例如,你可以輸入下列命令來找到Firefox:
find / -name firefox

命令運行的結果會嗖的一下輸出一大堆,別擔心,你也可以通過less或者more來進行分頁查看。
find / -name firefox | more find / -name firefox | less

當find命令查找到沒有許可權訪問文件夾時,會報出一條拒絕訪問錯誤,
你可以通過sudo命令來提示許可權。當然,如果你沒有安裝sudo的話,就只能切換到一個擁有許可權的用戶了。
sudo find / -name firefox | more

如果你知道你要查找的文件在你的當前目錄結構中,那麼你可以使用點來代替斜杠:
sudo find . -name firefox | more

你可能需要sudo來提升許可權,也可能根本就不需要,如果這個文件在你的主目錄裡面,那麼就不需要使用sudo。
有些應用程序則必須要提升許可權才能運行,否則你就會得到一大堆拒絕訪問錯誤,除非你使用一個具有許可權的用戶或者使用sudo提升許可權。
這里有個小竅門。如果你運行了一個程序,但是它需要提升許可權來操作,輸入下面命令試試:
sudo !!

方法五:
在Unix/Linux下如果想讓程序獨立終端運行,一般都是使用 & 在命令結尾來讓程序自動運行。(命令後可以不追加空格)
打開gnome-terminal,執行如下命令:
delectate@delectate:~$ totem &[1] 8510delectate@delectate:~$ 有幾點需要注意:
已經啟動的程序依然attach於當前pts,只有當前終端模擬器關閉(使用exit命令退出),進程自動被tty繼承。delectate@delectate:~$ ps -e | grep totem //程序已被以totem & 形式啟動,當前附在pts0上8819 pts/0 00:00:00 totemdelectate@delectate:~$ ps -e | grep totem //pts0的模擬終端被exit命令關閉,totem自動附在tty8819 ? 00:00:00 totemdelectate@delectate:~$
具有debug輸出的進程,需要按enter鍵進行中斷當前debug輸出。但是如果程序持續進行printf,你將無法輸入任何命令。delectate@delectate:~$ vlc &[1] 8850delectate@delectate:~$ VLC media player 1.0.6 Goldeneye[0x8b998b0] main libvlc: Running vlc with the default interface. Use 『cvlc』 to use vlc without interface. //enter presseddelectate@delectate:~$ //show a clean terminal now** (:8850): CRITICAL **: giop_thread_request_push: assertion `tdata != NULL』 failed //仍然在輸出數據…… //關閉程序[1]+ Done vlcdelectate@delectate:~$
你無法記錄程序的debug輸出結果。
只有當虛擬終端是 $ 或者 # 時候,才可以關閉此終端,否則可能導致已經啟動的進程被關閉(按enter——如果程序持續輸出信息而沒有出現 $ 或 #)
使用nohup命令:
nohup描述:Run COMMAND, ignoring hangup signals.(忽略任何中斷/掛起信號,使命令繼續執行)
但是當你嘗試使用命令:
1nohup command
時候卻會遇到不大不小的麻煩……
delectate@delectate:~$ nohup vlcnohup: ignoring input and appending output to `nohup.out』
是的,雖然它自動把debug信息記錄到nohup.out文件,但是你卻無法使用這個終端進行任何操作。
所以你需要和第一個方法混用,即
nohupcommand {option}&
混用後,它會自動把你執行的命令輸出結果記錄到許可權為-rw——-,名為nohup.out的文件中。
但是你仍然需要
delectate@delectate:~$ nohup vlc &[1] 9045delectate@delectate:~$ nohup: ignoring input and appending output to `nohup.out』 //在這里按一下回車或以ctrl+c以 //show a clean terminal delectate@delectate:~$
與使用 「&」 性質相同,當前啟動程序的終端如果沒有被關閉,已經啟動的程序附在pst上;如果終端被關閉,則自動附在tty。
如果當前目錄的 nohup.out 文件不可寫,輸出重定向到 $HOME/nohup.out。默認狀態下,nohup默認輸出到nohup.out文件,你也可以利用重定向來指定輸出文件:
nohupcommand {option} > myout.file 2>&1 &
只有當虛擬終端是 $ 或者 # 時候,才可以關閉此終端,否則可能導致已經啟動的進程被關閉(按enter——如果程序持續輸出信息而沒有出現 $ 或 #)
其他相關命令:
jobs:查看當前有多少在後台運行的命令
fg:將後台中的命令調至前台繼續運行。如果後台中有多個命令,可以用 fg %jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的後台正在執行的命令的序號(不是pid)
bg:將一個在後台暫停的命令,變成繼續執行。如果後台中有多個命令,可以用bg %jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的後台正在執行的命令的序號(不是pid)
殺死進程
殺死已經啟動的程序和普通方式一樣:
pkill -9 name
killall name
kill pid

命令應用:
linux伺服器掛機下載;啟動相關服務;linux伺服器啟動進程(尤其是ssh登錄)
我就曾經用 1nohup aria2c -i downloadlist -m 0 -j 1 &

『陸』 linux 如何後台運行

一般情況下關閉終端時,那麼在這個終端中啟動的後台程序也會終止,要使終端關閉後,後台程序保持執行,使用這個指令:
nohup test.sh &

『柒』 linux系統下如何從後台啟動進程.

你得查看後台存在的進程 #jobs

#fg

#bg

兩個命令是調入前台和後台的命令

在命令後面加上一個 &
比如:
rm -rf /tmp/ &
linux 技巧:讓進程在後台可靠運行的幾種方法
weibogoogle+用電子郵件發送本頁面
我們經常會碰到這樣的問題,用 telnet/ssh 登錄了遠程的 linux 伺服器,運行了一些耗時較長的任務, 結果卻由於網路的不穩定導致任務中途失敗。如何讓命令提交後不受本地關閉終端窗口/網路斷開連接的干擾呢?下面舉了一些例子, 您可以針對不同的場景選擇不同的方式來處理這個問題。

『捌』 Linux進程後台運行的幾種方式

Ctrl+z/bg/nohup/setsid/&
在Linux中,如果要讓進程在後台運行,一般情況下,我們在命令後面加上&即可,實際上,這樣是將命令放入到一個作業隊列中了:

./rsync.sh &# jobs

但是如上方到後台執行的進程,其父進程還是當前終端shell的進程,而一旦父進程退出,則會發送hangup信號給所有子進程,子進程收到hangup以後也會退出。如果我們要在退出shell的時候繼續運行進程,則需要使用nohup忽略hangup信號,或者setsid將將父進程設為init進程(進程號為1):對於已經在前台執行的命令,也可以重新放到後台執行,首先按ctrl+z暫停已經運行的進程,然後使用bg命令將停止的作業放到後台運行:bg %1,放回前台運行:%1。
# nohup ./rsync.sh &# setsid ./rsync.sh &或
# (./rsync.sh &) ////在一個subshell中執行# ps -ef|grep rsync

nohup 的用途就是讓提交的命令忽略 hangup 信號,標准輸出和標准錯誤預設會被重定向到 nohup.out 文件中。。一般我們可在結尾加上」&」來將命令同時放入後台運行,也可用」 > log.out 2>&1」來更改預設的重定向文件名。
上面的試驗演示了使用nohup/setsid加上&使進程在後台運行,同時不受當前shell退出的影響。那麼對於已經在後台運行的進程,該怎麼辦呢?可以使用disown命令:
# jobs
# disown -h %1# ps -ef|grep rsync

效果與setid相同,但是disown後無法通過jobs命令查看了。
screen
還有一種更加強大的方式是使用screen,首先創建一個斷開模式的虛擬終端,然後用-r選項重新連接這個虛擬終端,在其中執行的任何命令,都能達到nohup的效果,這在有多個命令需要在後台連續執行的時候比較方便。

GNU Screen是一款由GNU計劃開發的用於命令行終端切換的自由軟體。用戶可以通過該軟體同時連接多個本地或遠程的命令行會話,並在其間自由切換,可以看作是窗口管理器的命令行界面版本。它提供了統一的管理多個會話的界面和相應的功能。
# yum install screen -y

常用screen參數:
# screen -S docker-d 新建一個名叫docker-d的session,並馬上進入
# screen -dmS docker-d 新建一個名叫docker-d的session,但暫不進入,可用於系統啟動腳本
# screen -ls 列出當前所有session
# screen -r docker-d 恢復到zhouxiao這個session,前提是已經是斷開狀態(-d可以遠程斷開會話)
# screen -x docker-d 連接到離線模式的會話(多窗口同步演示)
# screen ./rsync.sh screen創建一個執行腳本的單窗口會話,可以attach進程ID
# screen -wipe 檢查目前所有的screen作業,並刪除已經無法使用的screen作業

正常情況下,當你退出一個窗口中最後一個程序(通常是bash)後,這個窗口就關閉了。另一個關閉窗口的方法是使用C-a k,這個快捷鍵殺死當前的窗口,同時也將殺死這個窗口中正在運行的進程。
在每個screen session 下,所有命令都以 ctrl+a(C-a) 開始。
C-a w 顯示所有窗口列表
C-a k 這個快捷鍵殺死當前的窗口,同時也將殺死這個窗口中正在運行的進程。
C-a d detach,暫時離開當前session

上面只是基本也是最常用的用法,更多請參考man screen或linux screen 命令詳解。需要了解的是,一個用戶創建的screen,其他用戶(甚至root)通過screen -ls是看不見的。另外,Ctrl+a在bash下是用來回到行開頭,不幸與上面的組合快捷鍵沖突。

『玖』 啟動時怎麼讓linux程序在後台運行程序運行

如運行一個火狐瀏覽器 直接在終端:firefox &

jobs------------查看在後台執行的進程

fg %n----------將後台執行進程n調到前台執行,n表示jobnumber(通過jobs查看的進程編號,而非pid)

ctrl+z----------將在前台執行的進程,放到後台並掛起

bg %n---------將在後台掛起的進程,繼續執行

ctrl+c----------前台進程終止

kill %n---------殺掉後台運行的進程,n表示jobnumber(通過jobs查看的進程編號,而非pid)

『拾』 linux後台運行是什麼意思 它是怎麼實現的

後台運行說白了就是不在桌面上運行,讓計算機自己運行。通過FG+後台進程號可以調回前台(桌面)。用&可以實現放入後台運行

熱點內容
逍遙模擬器如何配置網路 發布:2024-05-06 12:21:38 瀏覽:982
伺服器如何檢測硬體地址 發布:2024-05-06 12:12:35 瀏覽:738
伺服器在線訪問數由什麼決定 發布:2024-05-06 11:39:15 瀏覽:678
途觀21款哪個配置值得買 發布:2024-05-06 11:29:00 瀏覽:92
pythonspyder 發布:2024-05-06 11:15:53 瀏覽:166
線上伺服器如何資源監控 發布:2024-05-06 11:15:07 瀏覽:299
頁游腳本檢測 發布:2024-05-06 11:05:05 瀏覽:925
七七網源碼 發布:2024-05-06 10:27:36 瀏覽:295
shell輸入腳本 發布:2024-05-06 10:19:49 瀏覽:985
通達信自定義板塊在哪個文件夾 發布:2024-05-06 09:56:37 瀏覽:104