linux應用啟動
1. 如何使用linuxdaemon啟動
一個應用程序
1.首先,准備一個純卜爛可執行的應用程序,可以是一個shell腳本弊兆或者是一個可執行的二進制文件。
2.編寫一個啟動腳本,用於啟動應用程序,並將其保存到/etc/init.d/目錄下。
3.使用update-rc.d命令將啟動腳本添加到系統啟動項中。
4.使用service命令啟動應用程序,或者使用/etc/做漏init.d/腳本啟動應用程序。
2. 在linux(ubuntu)下安裝了軟體之後,怎麼啟動它
Ubuntu已安裝的軟體可以通過終端進入,命令快捷方式(跟Windows下類似),這里以Firefox為例:
終端啟動軟體方法:
1.把Firefox安裝文件拷貝到/usr/local目錄下
sudo mv Firefox**.tar.gz /usr/local2.進入/usr/local,解壓Firefox**.tar.gz
sudo tar -jxvf Firefox**.tar.gz3.進入Firefox目錄,運行firefox
cd Firefox./firefox建立桌面快捷方巧余式:
1.創建一個文件羨拍名為Firefox.desktop文件,將下面的代碼拷貝進去
[Desktop Entry]Categories=Development;Comment[zh_CN]=Comment=Exec=/usr/local/Firefox #Exec=軟體執行文件的路徑GenericName[zh_CN]=IDEGenericName=IDEIcon=/usr/local/Firefox/icon.xpm #Icon=快捷方式圖標MimeType=Name[zh_CN]=eclipseName=火狐瀏覽器 #Name=快捷方孝派滾式名稱Path=StartupNotify=trueTerminal=falseType=ApplicationX-DBUS-ServiceName=X-DBUS-StartupType=X-KDE-SubstituteUID=falseX-KDE-Username=owen2.給文件添加可執行許可權
chmod +x Firefox.desktop3.將該文件復制到桌面
註:在ubuntu11.04之前的版本中,有更簡單的方法來創建桌面快捷方式:右鍵點擊桌面-創建啟動器即可。
3. linux啟動app命令
linux啟動app命令:做 Linux 嵌入式開發,經常會遇到要設置自己的應用程序在系統開機的時候自動啟動,並且一般情況我們不想安裝一些額外的軟體去實現此種需求。那麼直接根據當前系統自帶的默認的一些工具實現用戶軟體的開機自啟動。
本次測驗的系統環飢指旁境為 Ubuntu 16.04 LTS,測試內容均得到逗早正確的驗證,如果其他環境出現不一致的現象,請查閱相關的差異。
比如先要實現下面的應用程序的開機自啟動(實現的代碼最下面給出,有需要的可以查看):
1. 應用程序的名稱:爛橡app.bin
2. 應用程序的保存路徑:/home/ubuntu/app/ 下
3. 應用程序的工作路徑:/home/ubuntu/app/ 下
4. 設置linux設置開機自啟動應用程序
1.新建文件:
2.新建文件:
輸入以下內容:
3.加許可權
4.允許開機自啟
5.手動啟動服務
6.檢查服務狀態
7.查看日誌
5. 嵌入式ARM linux系統如何設置開機啟動應用程序
其實樓主的問題很專業,之前我在周立功那邊也了解過不少。x0dx0a 當用戶需要EasyARM-iMX283在開機啟動後就運行指定的應用程序或指令時,可以通過vi命令編輯/etc/rc.d/init.d/start_userapp,將要執行的指令添加到裡面。若用戶有一個hellow的程序放在/home/目錄中,那麼設置hellow程序開機啟動的方法如程序清單 1.1紅色部分所示。x0dx0a程序清單1.1 用戶啟動文件x0dx0a#!/bin/sh x0dx0a#you can add your app start_command three x0dx0a/home/hellow x0dx0a#start qt command,you can delete it 下面是啟動QT界面的指令,若用戶不需要啟動QT,可以直接刪除x0dx0aexport TSLIB_PLUGINDIR=/usrb/ts/ x0dx0aexport TSLIB_CONFFILE=/etc/ts.conf x0dx0aexport TSLIB_TSDEVICE=/dev/input/ts0 x0dx0aexport TSLIB_CALIBFILE=/etc/pointercal x0dx0aexport QT_QWS_FONTDIR=/usrb/fontsx0dx0aexport QWS_MOUSE_PROTO=Tslib:/dev/input/ts0 x0dx0a/usr/yuan/zylauncher/start_zylauncher &x0dx0ax0dx0a如果程序是一個阻塞程序(程序被運行後不會退出或返回),則可能會導致位於其後的指令或程序無法得到執行,並且始終佔用串口終端,造成其他程序(比如Shell)無法通過串口終端與用戶交互。對於此類應用程序,可以在其後面添加「 &」(注意:是「空格」+「&」符號)讓其在後台運行,如下所示:x0dx0a/home/hellow &
6. 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 &
7. Linux系統啟動及定製過程
CentOS的啟動流程總體順序如下:
POST --> Boot Sequence --> bootloader(MBR) --> Kernel --> 載入rootfs --> switchroot --> /sbin /init --> (配置文件:/etc/inittab, /etc/init/*.conf) --> 根據init配置文件設置默認運行級別 --> 運行系統初始化腳本/etc/rc.d/rc.sysinit,完成系統初始化 --> 開啟或關閉用戶選定的對應運行級別下所對應的服務 --> 啟動終端,列印登錄提示符。
註:前面加粗部分代表內核空間的系統啟動流程,後面未加粗部分代表用戶空間的系統啟動流程。
第一步:硬體啟動過程
POST加電自檢
主要實現的功能是檢測各個外圍硬體設備是否存在而且能夠正常運行起來,實現這一自檢功能的是固化在主板上的ROM(主要代表為CMOS)晶元上的BIOS(Basic Input/Output System)程序;例如BIOS會檢測CPU、Memory以及I/O設備是否能夠正常運行,如果是個人計算機的話可能還會檢測一下顯示器。只要一通電,CPU就會自動去載入ROM晶元上的BIOS程序,是這樣來實現的。而檢測完成之後就進行硬體設備的初始化。
選擇啟動設備以載入MBR
主要實現的功能是選擇要啟動的硬體設備,選擇了之後就可以讀取這個設備上位於MBR里頭的bootloader了。這一步的實現是這樣的:根據BIOS中對啟動順序的設定,BIOS自己會依次掃描各個引導設備,然後第一個被掃描到具有引導程序(bootloader)的設備就被作為要啟動的引導設備。
MBR(Main Boot Record),是硬碟的0柱面,0磁軌、1扇區(第一個扇區),稱為主引導扇區,也稱為主引導記錄。它由三部分組 成:主引導程序(BootLoader)、硬碟分區表DPT(Disk Partition table)和硬碟有效標志(55AA)。
註:硬碟默認一個扇區大小為512位元組。
第一部分,主引導程序(BootLoader)佔446個位元組,負責從活動分區中裝載,並運行系統引導程序。
第二部分,硬碟分區表DPT佔64個位元組,有4個分區表項,每個分區表項佔16個位元組,硬碟中分區有多少以及每一個分區的大小都記 錄在其中。
第三部分,硬碟有效標志,佔2個位元組,固定為55AA。如果這個標志位0xAA55,就認為這個是MB
第二步:GRUB引導階段
不同的系統有不同的主引導程序(BootLoader)。Windows使用的是NTLDR(NT Loader,Windows NT系列操作系統)、Bootmgr(Boot Manager,Windows Vista,7,8,10),Linux一般使用的是grub(也叫grub legacy)和grub2。GRUB程序載入執行並引導kernel(內核)程序,其中有三個階段,Grub引導階段的文件都在/boot/grub/目錄下。
stage1: 這一階段執行的就是系統安裝時預先寫入到MBR的Bootloader程序,即是存放在MBR的前446位元組里的程序。它的任務僅是讀取(載入)硬碟的0柱面,0磁軌,2扇區的內容(/boot/grub/stage1)並執行。
stage1.5: 這一階段是Stage1階段和Stage2階段的橋梁,功能是載入stage2所在分區的文件系統驅動,讓stage1中的bootloader能識別stage2所在分區的文件系統,此後grub程序便有能力去訪問/boot/grub/stage2。
stage2: 這一階段讀取並解析grub的配置文件/boot/grub/grub.cnf,根據配置文件載入內核鏡像到內存中,通過initrd程序建立虛擬根文件系統,最後調用(轉交)內核。
第三步:內部引導階段
載入內核,核心開始解壓,啟動一些最核心的程序。為了讓內核足夠的輕小,硬體驅動並沒放在內核文件裡面。系統僅探測可識別到的所有硬體設備,載入硬體驅動程序,即載入真正的根文件系統所在設備的驅動程序(有可能會藉助於ramdisk載入驅動),以只讀方式掛載根文件系統,運行用戶空間的第一個應用程序:/sbin/init。
第四步:init初始化階段(系統初始化階段)
雖然CentOS 5、CentOS 6以及CentOS 7的/etc/init配置文件內容各不相同,但總體的啟動流程相同:/sbin/init --> 根據/etc/inittab配置文件設置默認運行級別 --> 運行系統初始化腳本/etc/rc.d/rc.sysinit,完成系統初始化 --> 關閉或啟動用戶選定的默認運行級別所對應的服務 。
對於CentOS 5來說,初始化程序init是SysV init,其配置文件為:/etc/inittab; 對於CentOS 6來說,初始化程序init是upstart,其配置文件為:/etc/inittab, /etc/init/ .conf,也就是upstart將配置文件拆分成多個,在/etc/init/目錄下以conf結尾的都是upstart風格的配置文件,而/etc/inittab僅用於設置默認運行級別; 對於CentOS 7來說,初始化程序init是systemd,其配置文件:/usr/lib/system/systemd/, /etc/systemd/system/ ;
具體執行過程:/sbin/init程序會讀取/etc/inittab文件確認運行級別,然後執行/etc/rc.d/rc腳本,根據確認的運行級別啟動對應/etc/rc.d/rc#.d/目錄下的服務(#為0~6),與此同時執行系統初始化腳本/etc/rc.sysinit(軟鏈接,指向/etc/rc.d/rc.sysinit),還會載入/etc/rc.local(軟鏈接,指向/etc/rc.d/rc.local文件)用戶自定義服務(腳本)。
CentOS7中初始化進程變為了systemd,systemd即為system daemon,是Linux下的一種init軟體,開發目標是提供更優秀的框架以表示系統服務間的依賴關系,並依此實現系統初始化時服務的並行啟動,同時達到降低Shell系統開銷的效果,最終代替現在常用的System V與BSD風格的init程序。與多數發行版使用的System V風格的init相比,systemd採用了以下的新技術:A.採用Socket激活式與匯流排激活式服務,以提高相互依賴的各服務的並行運行性能;B.用Cgroup代替PID來追蹤進程,即使是兩次fork之後生成的守護進程也不會脫離systemd的控制。
第五步:啟動終端
根據前面獲取的運行級別來啟動終端,mingetty程序是用於啟動終端的,它會調用登錄程序login,這樣就能顯示出登錄提示符了,類似mingetty這種用於打開終端的程序還有getty等。而如果默認運行級別為5,則會打開圖形界面。
第一步:硬體啟動過程
這一步和CentOS6差不多,詳細請看1.1內容。
第二步:GRUB引導階段
從這一步開始,CentOS6和CentOS7的啟動流程區別開始展現出來了。CentOS7的主引導程序使用的是grub2,執行過程是先載入boot.img、core.img兩個鏡像,再載入MOD模塊文件,把grub2程序載入執行,接著解析配置文件/boot/grub/grub.cfg,根據配置文件載入內核鏡像到內存,之後構建虛擬根文件系統,最後轉到內核。
CentOS7中使用命令進行配置,而不直接去修改配置文件了。grub.cfg配置文件開頭注釋部分說明了由/etc/grub.d/目錄下文件和/etc/default/grub文件組成。改好配置後都需要使用命令grub2-mkconfig -o /boot/grub2/grub.cfg,將配置文件重新生成。
第三步:內部引導階段
這一步與CentOS6也差不多,載入驅動,切換到真正的根文件系統,唯一不同的是執行的初始化程序變成了/usr/lib/systemd/systemd。
第四步:init初始化階段(系統初始化階段)
CentOS7中我們的初始化進程變為了systemd。執行默認target配置文件/etc/systemd/system/default.target(這是一個軟鏈接,與默認運行級別有關)。然後執行sysinit.target來初始化系統和basic.target來准備操作系統。接著啟動multi-user.target下的本機與伺服器服務,並檢查/etc/rc.d/rc.local文件是否有用戶自定義腳本需要啟動。最後執行multi-user下的getty.target及登錄服務,檢查default.target是否有其他的服務需要啟動。
注意:/etc/systemd/system/default.target指向了/lib/systemd/system/目錄下的graphical.target或multiuser.target。而graphical.target依賴multiuser.target,multiuser.target依賴basic.target,basic.target依賴sysinit.target,所以倒過來執行。
unit對象:unit表示不同類型的systemd對象,通過配置文件進行標識和配置;文件中主要包含了系統服務、監聽socket、保存的系統快照以及其他與init相關的信息。(也就是CentOS6中的伺服器啟動腳本)
第五步:啟動終端
systemd執行sysinit.target
systemd啟動multi-user.target下的本機與伺服器服務
systemd執行multi-user.target下面的/etc/rc.d/rc.local
Systemd執行multi-user.target下的getty.target及登錄服務
getty.target是啟動終端的systemd對象。如果到此步驟,系統沒有指定啟動圖形桌面,到此就可以結束了,如果需要啟動圖形界面,要在此基礎上啟動桌面程序。
從 CentOS 7 版本之後,系統開始用 systemd 實現init進程,系統啟動和伺服器守護進程管理器功能,負責在系統啟動或運行時,激活系統資源,伺服器進程和其它進程。
unit表示不同類型的systemd對象,通過配置文件進行標識和配置;文件中主要包含了系統服務、監聽socket、保存的系統快照以及其它與init相關的信息。
3.2 system unit文件格式
/usr/lib/systemd/system:發行版打包者使用,每個服務最主要的啟動腳本設置,類似於之前的/etc/init.d/
/etc/systemd/system:系統管理員和用戶使用,管理員建立的執行腳本,類似於/etc/rcN.d/Sxx的功能,比上面目錄優先運行
/lib/systemd/system::ubutun的對應目錄
/run/systemd/system:系統執行過程中所產生的服務腳本,比上面目錄優先運行
unit 格式說明:
service unit file文件通常由三部分組成:
Unit段的常用選項:
Service段的常用選項:
Install段的常用選項:
注意:對於新創建的unit文件,或者修改了的unit文件,要通知systemd重載此配置文件,而後可以選擇重啟。
首先在啟動界面按e編輯啟動參數,
將ro參數更改為rw init=/sysroot/bin/sh,按ctr + x啟動系統
按下圖執行命令更改root密碼
8. Linux 基本桌面啟動流程
通常,在我們的電腦上,開機後會執行init程序,也就是systemd,systemd會自動啟動你的顯示戚巧管理器
顯示管理器會自動的啟動XServer和XClient,server一般就是Xorg。
如果我們沒有自啟動的登錄管理器,就會進到默認的終端登錄,答仔者你需要在終清薯端上輸入 startx 才能顯出窗口管理器。startx是xinit的包裝,會啟動XServer對應的配置文件 /etc/X11/xinit/xserverrc
X這個程序就是Xorg程序。
startx還會啟動XClient對應的配置文件 ~/.xinitrc
這樣,你的桌面就顯示出來了,dwm主要會調用xlib的介面,其它桌面則調用更多像Qt、Gtk這樣的介面實現
Arch安裝文檔已經很全面了,在UbuntuServer上安裝圖形化界面也類似。
vim ~/.xinitrc
9. 設置Linux開機自啟動服務的常見方法有哪些
到底哪些服務適合開機自啟動?是很多Linux運維在工作中會遇到的問題。其實,只要不影響系統及服務的運行,開多開少也沒關系。Linux運維人員要明確每項服務的作用,不用的就不安裝,默認安裝時則不開機自啟動。設置開機自啟動服務的常見方法有哪些?
1)執行命令,然後手動選擇處理的方法
方法1:執行ntsysv命令,然後在彈出窗口進行設置。
方法2:執行setup命令→system service,然後在彈出窗口中進行設置。
2)通過一行命令或She11腳本設置
在快速設置前,先查看默認情況下Linux系統開啟的服務有哪些。如果工作在文本模式3級別,那就只需要查找3級別上開啟的服務即可。了解了系統在3級別上開啟的服務後,就可以通過命令快速實現配置了。以下便是幾種通過命令或腳本設置開機自啟動的方法。
1:先全關閉,再開啟需要保留的。
2:一條命令搞定,Shell循環實現。默認情況下需要保留的服務都已開啟,因此,關閉3級別文本模式下已開啟但又不需要的服務就好了。
3:不要Shell循環語句也一條命令搞定。默認情況下要保留的服務都已開啟,因此,關閉3級別文本模式下已開啟但又不需要的服務就好了,不用循環結構而是利用命令拼出所有要處理的命令字元串,通過bash將其當作命令執行。
那麼到底將哪些服務作為開機自啟動服務合適?但作為一名優秀的Linux系統管理員,應該遵守最小化原則,盡量不安裝不使用的軟體、不開啟不需要的服務;這樣系統的性能和安全性才是最好的。
10. linux怎麼配置不同的啟動端
在 Linux 中,每個應用程序都可以使用不同的埠芹擾進行啟動。要配置不同的啟動埠,可以按照以下步驟進行操作:
登錄 Linux 系統,並切換到應用程序的目錄。
打開應用程序的配置文件,通常是一個文本文件,可以使用 vi 或者 nano 等文本編輯器進行編輯。
在配置文件中查找埠號的配置項,通常是一個名為 port 或者 listen 的參數。如果沒有該參數,可以在文件中添加一個新的參數,例如 my_port。
將埠號設置為一個未被佔用的埠號,例如 8080 或者 8888。
保存配置文件並退出編輯團鬧器。
啟動應用程序,可以在命令行中輸入 ./myapp 或者其他命令進行啟動。如果應用程序支持配置文件啟動,可以使用 ./myapp -c myconfig.conf 等命令進行啟動,並指定配置文件的路徑。
在啟動後,可以使用 netstat 命令查看應用程序正在使用的埠號,例如 netstat -an | grep 8080。如果應用程序無法啟動或者端塌首罩口號被佔用,可以嘗試使用其他埠號進行配置。