⑴ 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軟體安裝完後應該怎麼運行
1、首先打開虛擬機的Linux系統,在shell中安裝Wine軟體。
⑶ linux下exe 程序怎麼運行
linux下需要安裝wine來兼容windows下的程序。
一. 安裝Wine
Wine適應於所有流行的UNIX操作系統,包括Ubuntu、Debian、Red Hat、SUSE、Mandriva、FreeBSD、Solaris和Mac OS X。
在Ubuntu上:
一、通過Unbuntu軟體中心安裝
1、 打開Applications(應用程序)>Ubuntu Software Center(Unbuntu軟體中心),打開Ubuntu軟體中心。
然後點擊Edit(編輯)>Software Sources(軟體源)。選擇Other Software(其他軟體)選項卡,點擊Add(添加)。然後輸入下列apt行:ppa:ubuntu-wine/ppa
2、Allsoftwares右側菜單中選擇「PPA for Ubuntu Wine Team」,然後選擇Microsoft Windows Compatibility Layer(Development files) – wine1.3-dev。點擊Install(安裝)。這會安裝最新的Wine軟體包,包括開發庫。
提示:卸載現有的Wine軟體包,以確保最大的兼容性。另外,如果想干凈安裝,可以刪除Wine用戶目錄,為此可以從主目錄中使用命令rm -r -v .wine。
二、通過終端安裝
終端輸入[如何在Ubuntu14.04中安裝和運行Windows應用程序]
sudo add-apt-repository ppa:ubuntu-wine/ppa
sudo apt-get update
apt-get install wine1.7
wine --version
[Wine完全卸載]
二、安裝Wine支持包
現在,需要安裝非開源(但免費)的支持包。這包括微軟Core Fonts、Visual C++運行時環境等軟體包。
安裝Cabextract:
需要該軟體包來解壓縮微軟.cab文件。
$ sudo apt-get install cabextract
⑷ linux怎麼打開程序
從命令行或者 shell 提示符執行應用程序的一個常用方法是使用 ./ 命令。如果您在 Linux 中使用句號 (.) 和正斜杠 (/),就意味著告訴環境您想要以可執行文件運行該文件。例如,運行一個名為 myapp 的可執行文件,您可以使用 ./myapp 命令。同樣地,您可以在文件名之前加上語言環境,比如:
● sh
● php
● python
● perl
● java
但更多情況下,套裝應用程序使用 shell 腳本,以 #! 符號設置環境變數提供該語言的運行時可執行路徑,比如 #!/usr/bin/python。您也應該熟悉這種方法。
清單 1 使用 catalina.sh 默認腳本通過 ./ 方法啟動 Apache Tomcat 應用程序伺服器。然後,使用 sh 方法啟動伺服器。因為默認埠是 8080,標准用戶不需要對其進行特別修改就可以啟動該服務。
清單 1. 從命令行執行應用程序
$ ./catalina.sh start
Using CATALINA_BASE: /opt/apache-tomcat-7.0.26
Using CATALINA_HOME: /opt/apache-tomcat-7.0.26
Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/apache-tomcat-7.0.26/bin/bootstrap.jar:
/opt/apache-tomcat-7.0.26/bin/tomcat-juli.jar
$ ./catalina.sh stop
.....................................................................
$ sh catalina.sh start
Using CATALINA_BASE: /opt/apache-tomcat-7.0.26
Using CATALINA_HOME: /opt/apache-tomcat-7.0.26
Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/apache-tomcat-7.0.26/bin/bootstrap.jar:
/opt/apache-tomcat-7.0.26/bin/tomcat-juli.jar 可參考下《Linux就該這么學》了解更多Linux知識。
⑸ linux下怎樣才能運行exe程序
linux下需要安裝wine來兼容windows下的程序。
一. 安裝Wine
Wine適應於所有流行的UNIX操作系統,包括Ubuntu、Debian、Red Hat、SUSE、Mandriva、FreeBSD、Solaris和Mac OS X。
在Ubuntu上:
一、通過Unbuntu軟體中心安裝
1、 打開Applications(應用程序)>Ubuntu Software Center(Unbuntu軟體中心),打開Ubuntu軟體中心。
然後點擊Edit(編輯)>Software Sources(軟體源)。選擇Other Software(其他軟體)選項卡,點擊Add(添加)。然後輸入下列apt行:ppa:ubuntu-wine/ppa
2、Allsoftwares右側菜單中選擇「PPA for Ubuntu Wine Team」,然後選擇Microsoft Windows Compatibility Layer(Development files) – wine1.3-dev。點擊Install(安裝)。這會安裝最新的Wine軟體包,包括開發庫。
提示:卸載現有的Wine軟體包,以確保最大的兼容性。另外,如果想干凈安裝,可以刪除Wine用戶目錄,為此可以從主目錄中使用命令rm -r -v .wine。
二、通過終端安裝
終端輸入[如何在Ubuntu14.04中安裝和運行Windows應用程序]
sudo add-apt-repository ppa:ubuntu-wine/ppa
sudo apt-get update
apt-get install wine1.7
wine --version
[Wine完全卸載]
二、安裝Wine支持包
現在,需要安裝非開源(但免費)的支持包。這包括微軟Core Fonts、Visual C++運行時環境等軟體包。
安裝Cabextract:
需要該軟體包來解壓縮微軟.cab文件。
⑹ linux 終端啟動應用軟體
如果是使用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 !!
⑺ 如何執行在Linux上運行的應用程序
例如,為每個人賦予一個文件的執行許可權,使用 chmod a+x 命令。a 表示所有人,加號 (+) 表示添加,而 x 表示執行。同樣地,如果應用程序是一個伺服器服務,您應該確保只有授權帳戶才有權執行此服務。
如果一個應用程序能夠在標准用戶帳戶許可權下運行,但只有特定組中的用戶才需要使用它,您可以將該組所有者許可權設置為可執行,然後將這些用戶添加到該組中。
更具體地說,您可以在一個可執行文件中設置訪問控制列表 (ACL) 許可權,賦予特定用戶或組許可權來運行該應用程序。使用 setfacl 實用工具設置 ACL 許可權。
對於這些需要以 root 用戶啟動進程的應用程序,比如伺服器服務,您有幾個選擇。總結了允許用戶執行需要 root 許可權的伺服器服務的各種選項。
選項 描述
作為 root 用戶 不推薦用於伺服器服務。當用戶已經知道 root 密碼而且應用程序泄露不是首要關注問題時,可用於應用程序。
SetUID 由於安全問題,不推薦使用。SetUID 允許標准用戶以另一個用戶方式,比如 root 用戶,執行一個文件。
sudo 很常用,並且被認為是一個很好的實踐。sudo 授予一個用戶或組成員許可權以執行可能額外需要 root 許可權的文件。該用戶不需要知道 root 密碼。
帶有文件許可權的標准用戶帳戶 在一個文件上為用戶所有者、組所有者或其他人(所有人)設置執行許可權。這是授予那些不需要 root 許可權來執行應用程序的用戶的常用方法。
帶有 ACL 許可權的標准用戶帳戶 使用較少,但是如果您不想授予一個用戶 sudo 訪問或者更改文件的許可權,這也是一個可行的解決方案。在一個文件上使用 setfacl 命令,您可以授予一個特定用戶或用戶組執行該文件的權力。
從命令行運行
在管理 Linux 伺服器時,從命令行運行應用程序是一項基本的任務。很多應用程序使用 shell 腳本(類似於 Windows 批處理文件 .bat)來啟動應用程序並執行其他任務,比如設置變數以及為其他用戶分配進程。例如,應用程序可能需要一個 Java? Virtual Machine (JVM) 來執行。那樣的話,shell 腳本可以設置適當的環境變數,然後執行 Java 命令來運行 Java Archive (JAR) 或類文件。這同樣適用於使用 Perl、Python、甚至 C# 的應用程序。(當然,C# 編譯的應用程序可以在 Linux 上運行)
從命令行或者 shell 提示符執行應用程序的一個常用方法是使用 ./ 命令。如果您在 Linux 中使用句號 (。) 和正斜杠 (/),就意味著告訴環境您想要以可執行文件運行該文件。例如,運行一個名為 myapp 的可執行文件,您可以使用 ./myapp 命令。同樣地,您可以在文件名之前加上語言環境,比如:
sh
php
python
perl
java
但更多情況下,套裝應用程序使用 shell 腳本,以 #! 符號設置環境變數提供該語言的運行時可執行路徑,比如 #!/usr/bin/python.您也應該熟悉這種方法。
清單 1 使用 catalina.sh 默認腳本通過 ./ 方法啟動 Apache Tomcat 應用程序伺服器。然後,使用 sh 方法啟動伺服器。因為默認埠是 8080,標准用戶不需要對其進行特別修改就可以啟動該服務。
清單 1. 從命令行執行應用程序
考慮啟動一個典型 Hypertext Transfer Protocol (HTTP) Web 伺服器。在 Linux 中,任何低於 1024 的埠被認為是一個許可權埠,只有 root 可以打開許可權埠。因為,默認情況下,Web 伺服器運行於埠 80,root 需要啟動該進程。然而,如上所述,以 root 用戶運行一個服務被認為是不安全的。正確的步驟是以 root 啟動 該服務,然後將其轉移到一個標准用戶或者服務帳戶。
幸運的是,許多伺服器服務由腳本來執行這一操作。如果您從頭開始構建 Apache Web 伺服器,您將會發現它以 root 用戶啟動,然後將 httpd 線程轉交給 apache 用戶。
清單 2 啟動一個默認的 Apache 2 Web 伺服器編譯。安裝流程也做了一些事情,包括使 apachectl 命令可執行。因為該流程需要使用埠 80,使用 root 用戶許可權啟動。然而,ps 命令顯示 httpd 流程在 apache 用戶帳戶下運行。
清單 2. 啟動 Apache Web 伺服器
在後台運行應用程序
一些安裝的軟體可能不像 Apache Web 伺服器那樣用戶友好。您很可能需要在流程啟動後以後台方式運行它,除非您正在進行故障排除,或者想要看看應用程序到底怎麼了。如果您沒有這么做,shell 關閉後應用程序將終止。運行伺服器服務時,可不希望每次關閉終端 shell 或者退出時服務都會停止!
如果在後台運行一個應用程序,即使關閉了 shell 窗口,應用程序也會繼續運行。您可以通過在執行命令結尾附加一個 (&) 符號來啟動應用程序。例如,您可以使用 vi 編輯器打開文件,然後使用 vi /etc/sysconfig/network & 命令在後台運行該文件,因為 & 可以打開 /etc/sysconfig/network 文件並將其保留在後台。即使在退出後,您也可以使用 nohup 實用工具支持進程繼續運行。例如,nohup vi /etc/sysconfig/network &.
⑻ linux 怎麼打開應用程序
1、點擊電腦左下角,點擊左下角上的設置。
⑼ 一個很菜的問題,linux下安裝的應用程序怎麼打開
得到安裝好的目錄下運行gaim。。。或者是gaim.bin
我用的是debian,,,安裝好的目錄在usr/local下,
可執行文件在/usr/lib下。不知道紅旗怎樣,最好讀一讀紅旗官方網站上的說明
⑽ 如何在linux命令行中執行應用程序
具體步驟如下:
1、首先我們在命令行運行程序需要藉助jdk的環境依賴,打開jdk包。