新聞中心
Linux操作系統(tǒng)是一款優(yōu)秀的操作系統(tǒng),其強(qiáng)大的擴(kuò)展性和多樣化的命令使得它深受程序員們的喜歡。在Linux中,有很多進(jìn)程,其中有前臺進(jìn)程和后臺進(jìn)程。前臺進(jìn)程是用戶直接通過終端進(jìn)行操作并且在屏幕上顯示的進(jìn)程,與之相對應(yīng)的后臺進(jìn)程則是在后臺運(yùn)行不占用終端設(shè)備的進(jìn)程。在Linux中了解前臺進(jìn)程的特性可以幫助我們更好地利用和管理它們,下面將詳細(xì)探討Linux前臺進(jìn)程的特性。

創(chuàng)新互聯(lián)公司專注于撫州網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供撫州營銷型網(wǎng)站建設(shè),撫州網(wǎng)站制作、撫州網(wǎng)頁設(shè)計、撫州網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造撫州網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供撫州網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
一、前臺進(jìn)程的定義
前臺指的是當(dāng)前的操作界面,是用戶正在進(jìn)行操作的界面。前臺進(jìn)程是指在當(dāng)前終端所顯示的進(jìn)程,即用戶可直接操作、輸入信息等作用于這些進(jìn)程的程序。通常情況下,用戶在終端輸入的指令和命令全部都是前臺進(jìn)程。
二、前臺進(jìn)程的特性
1. 前臺進(jìn)程優(yōu)先級高
前臺進(jìn)程是當(dāng)前用戶需要進(jìn)行操作的進(jìn)程,因此它們優(yōu)先級比后臺進(jìn)程要高。如果同時運(yùn)行多個進(jìn)程,Linux會把前臺進(jìn)程先放在處理隊列的前面,這樣能對用戶的操作做出更快的響應(yīng)。
2. 前臺進(jìn)程占用終端設(shè)備
Linux中有一個終端設(shè)備,在進(jìn)行前臺進(jìn)程操作時,該終端設(shè)備會被占用,其他進(jìn)程將無法使用該設(shè)備。因此,用戶在正在進(jìn)行前臺操作時,不能進(jìn)行其他后臺操作。
3. 前臺進(jìn)程的信號
在Linux中,進(jìn)程可以相互通信,可以通過發(fā)送信號來實(shí)現(xiàn)。前臺進(jìn)程在接收到信號后,會暫停運(yùn)行,等待用戶輸入,用戶可以通過鍵盤輸入特殊的信號來控制前臺進(jìn)程。
4. 前臺進(jìn)程的I/O
Linux中除了終端設(shè)備,還有標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤三個設(shè)備,前臺進(jìn)程可以在這些設(shè)備之間進(jìn)行任意的輸入輸出,這樣用戶可以通過終端設(shè)備進(jìn)行實(shí)時的輸入與輸出操作。
三、前臺進(jìn)程的使用
1. 查看前臺進(jìn)程
用戶可以通過命令“jobs”查看當(dāng)前進(jìn)程狀態(tài),未結(jié)束的前臺進(jìn)程會顯示在屏幕上。
2. 切換前臺進(jìn)程
Ctrl+Z可以將前臺進(jìn)程轉(zhuǎn)化為后臺進(jìn)程,并在屏幕上顯示一個編號,這個編號可以用“fg+編號”將其切回前臺進(jìn)程。
3. 中斷前臺進(jìn)程
Ctrl+C可以中斷當(dāng)前前臺進(jìn)程,并清除該進(jìn)程所產(chǎn)生的緩存信息。
四、
對于程序員來說,深入了解Linux前臺進(jìn)程的特性是非常必要的。了解前臺進(jìn)程的優(yōu)先級、占用終端設(shè)備、信號和I/O等特性,可以幫助我們更好地管理和控制進(jìn)程,從而提高工作效率。同時,我們還需注意前臺進(jìn)程與后臺進(jìn)程之間的區(qū)別,避免出現(xiàn)意外的錯誤。
掌握Linux前臺進(jìn)程的特性將為我們的工作帶來很大的幫助,使我們能夠更加高效地運(yùn)用Linux系統(tǒng)。
相關(guān)問題拓展閱讀:
- 在Linux運(yùn)維中如何用cat命令創(chuàng)建一個前臺進(jìn)程?
- Linux中前臺起動的進(jìn)程怎么結(jié)束?
- 用putty或secureCRT通過SSH登錄到LINUX,并啟動一些進(jìn)程(比如java) ,為什么關(guān)閉了putty,java進(jìn)程也會關(guān)
在Linux運(yùn)維中如何用cat命令創(chuàng)建一個前臺進(jìn)程?
具體操作如下:
打開終端,進(jìn)入你想卜雀姿要創(chuàng)建進(jìn)程的目錄。
輸入cat命令,歲大并指定你想要創(chuàng)建的文件名。例如:
cat > myfile
在新的一行中輸入你想要保存在文件中的內(nèi)容。例如:
This is the content of my file.
按下CTRL + D鍵退出輸入模式,這樣cat命令就會停止運(yùn)行,并創(chuàng)建一個新的文件。
使用ls命令檢查型絕新文件是否已經(jīng)被創(chuàng)建
Linux中前臺起動的進(jìn)程怎么結(jié)束?
Linux可以使用Ctrl+C結(jié)束正在終端運(yùn)行的程序。也可以使用kill命令來結(jié)束指定進(jìn)程。
kill命令是Linux下進(jìn)程管理的常用命令。通常,終止一個前臺進(jìn)氏悶程可以使用Ctrl+C鍵,但是,對于一個后臺進(jìn)程就須用kill命令來終止,就需要先使用ps/pidof/pstree/top等工具獲取進(jìn)程PID,然后使用kill命令來殺掉該進(jìn)程。kill命令是通過向進(jìn)程發(fā)送指定的信號來結(jié)束相應(yīng)進(jìn)程的。在默認(rèn)情況下,采用編號為15的TERM信號。TERM信號將終止所有不能捕獲該信號的進(jìn)程。對于那些可以捕獲該信號的進(jìn)程就要用編號為9的kill信號,強(qiáng)行“殺掉”該進(jìn)程。
1.命令格式:
kill
2.命殲旦彎令功能:
發(fā)送指定的信號到相應(yīng)進(jìn)程。不指定型號將發(fā)送SIGTERM(15)終止指定進(jìn)程。如果任無法終止該程序可用“-KILL” 參數(shù),其發(fā)送的信號為SIGKILL(9) ,將強(qiáng)制結(jié)束進(jìn)程,使用ps命令或者jobs 命令可以查看進(jìn)程號。root用戶將影響用戶的進(jìn)程,非root用戶只能影響自己的進(jìn)程。
3.命令參數(shù):
-l 信號,若果不加信號的編號參數(shù),則使用“-l”參數(shù)會列出全部的信號名稱
-a 當(dāng)處理當(dāng)前進(jìn)程時,不限制命令名和進(jìn)程號的對應(yīng)關(guān)系
-p 指定kill 命令只打印相關(guān)進(jìn)程的進(jìn)程號,而不發(fā)送任何信號
-s 指定發(fā)送信號
-u 指定用戶
注意:
1、kill命令可以帶信號號碼選項,也可以不帶。如果沒有信號號碼,kill命令就會發(fā)出終止信號(15),這個信號可以被進(jìn)程捕獲,使得進(jìn)程在退出之前可以清理并釋放資源。也可以用kill向進(jìn)程發(fā)送特定的信號。例如:
kill
它的效果等同于在前臺運(yùn)行PID為123的進(jìn)程時按下Ctrl+C鍵。但是,普通用戶只能使用不帶signal參數(shù)的kill命令或最多使用-9信號。
2、kill可以帶有進(jìn)程ID號作為參遲察數(shù)。當(dāng)用kill向這些進(jìn)程發(fā)送信號時,必須是這些進(jìn)程的主人。如果試圖撤銷一個沒有權(quán)限撤銷的進(jìn)程或撤銷一個不存在的進(jìn)程,就會得到一個錯誤信息。
3、可以向多個進(jìn)程發(fā)信號或終止它們。
4、當(dāng)kill成功地發(fā)送了信號后,shell會在屏幕上顯示出進(jìn)程的終止信息。有時這個信息不會馬上顯示,只有當(dāng)按下Enter鍵使shell的命令提示符再次出現(xiàn)時,才會顯示出來。
5、應(yīng)注意,信號使進(jìn)程強(qiáng)行終止,這常會帶來一些副作用,如數(shù)據(jù)丟失或者終端無法恢復(fù)到正常狀態(tài)。發(fā)送信號時必須小心,只有在萬不得已時,才用kill信號(9),因為進(jìn)程不能首先捕獲它。要撤銷所有的后臺作業(yè),可以輸入kill 0。因為有些在后臺運(yùn)行的命令會啟動多個進(jìn)程,跟蹤并找到所有要?dú)⒌舻倪M(jìn)程的PID是件很麻煩的事。這時,使用kill 0來終止所有由當(dāng)前shell啟動的進(jìn)程,是個有效的方法。
4.使用實(shí)例:
實(shí)例1:列出所有信號名稱
命令:
kill -l
輸出:
# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT
17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU
25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH
29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN
35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4
39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12
47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6
59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
說明:
只有第9種信號(SIGKILL)才可以無條件終止進(jìn)程,其他信號進(jìn)程都有權(quán)利忽略。 下面是常用的信號:
HUP 1 終端斷線
INT 2 中斷(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 終止
KILL 9 強(qiáng)制終止
CONT 18 繼續(xù)(與STOP相反, fg/bg命令)
STOP 19 暫停(同 Ctrl + Z)
實(shí)例2:得到指定信號的數(shù)值
命令:
輸出:
# kill -l KILL
9# kill -l SIGKILL
9# kill -l TERM
15# kill -l SIGTERM
15#
說明:
實(shí)例3:先用ps查找進(jìn)程,然后用kill殺掉
命令:
kill 3268
輸出:
# ps -ef|grep vim
root6:21 pts/1 00:00:00 vim install.log
root6:21 pts/0 00:00:00 grep vim
# kill 3268
# kill 3268
-bash: kill: (3268) – 沒有那個進(jìn)程
#
說明:
實(shí)例4:徹底殺死進(jìn)程
命令:
kill –9 3268
輸出:
# ps -ef|grep vim
root6:21 pts/1 00:00:00 vim install.log
root6:21 pts/0 00:00:00 grep vim
# kill –9 3268
# kill 3268
-bash: kill: (3268) – 沒有那個進(jìn)程
#
說明:
實(shí)例5:殺死指定用戶所有進(jìn)程
命令:
kill -9 $(ps -ef | grep peidalinux)
kill -u peidalinux
輸出:
# kill -9 $(ps -ef | grep peidalinux)
# kill -u peidalinux
說明:
方法一,過濾出hnlinux用戶進(jìn)程并殺死
實(shí)例6:init進(jìn)程是不可殺的
命令:
kill -9 1
輸出:
# ps -ef|grep init
rootNov02 ? 00:00:00 init
root 17:37 pts/1 00:00:00 grep init
# kill -9 1
# kill -HUP 1
# ps -ef|grep init
rootNov02 ? 00:00:00 init
root 17:38 pts/1 00:00:00 grep init
# kill -KILL 1
# ps -ef|grep init
rootNov02 ? 00:00:00 init
root 17:38 pts/1 00:00:00 grep init
#
說明:
用putty或secureCRT通過SSH登錄到LINUX,并啟動一些進(jìn)程(比如java) ,為什么關(guān)閉了putty,java進(jìn)程也會關(guān)
【原因所在】
元兇:SIGHUP 信號
讓我們來看看為什么關(guān)掉窗口/渣源斷開沖春連接會使得正在運(yùn)行的程序死掉。
在Linux/Unix中,有這樣幾個概念:
進(jìn)程組(process group):一個或多個進(jìn)程的,每一個進(jìn)程組有唯一一個進(jìn)程組ID,即進(jìn)程組長進(jìn)程的ID。
會話期(session):一個或多個進(jìn)程組的,有唯一一個會話期首進(jìn)程(session leader)。會話期ID為首進(jìn)程的ID。
會話期可以有一個單獨(dú)的控制終端(controlling terminal)。與控制終端連接的會話期首進(jìn)程叫做控制進(jìn)程(controlling process)。當(dāng)前與終端交互的進(jìn)程稱為前臺進(jìn)程組。其余進(jìn)程組稱為后臺進(jìn)程組。
根據(jù)POSIX.1定義:
掛斷信號(SIGHUP)默認(rèn)的動作是終止程序。
當(dāng)終端接口檢測到網(wǎng)絡(luò)連接斷開,將掛斷信號發(fā)送給控制如判態(tài)進(jìn)程(會話期首進(jìn)程)。
如果會話期首進(jìn)程終止,則該信號發(fā)送到該會話期前臺進(jìn)程組。
一個進(jìn)程退出導(dǎo)致一個孤兒進(jìn)程組中產(chǎn)生時,如果任意一個孤兒進(jìn)程組進(jìn)程處于STOP狀態(tài),發(fā)送SIGHUP和SIGCONT信號到該進(jìn)程組中所有進(jìn)程。
因此當(dāng)網(wǎng)絡(luò)斷開或終端窗口關(guān)閉后,控制進(jìn)程收到SIGHUP信號退出,會導(dǎo)致該會話期內(nèi)其他進(jìn)程退出。
我想你那個java進(jìn)程賣或可能有bug
退出ssh客戶端 是不會影響譽(yù)輪系統(tǒng)環(huán)境的 就是斷開ssh的服務(wù)而已
就中虛伍相當(dāng)于本地退出命令行 exit
T是通過ssh加密了的,比putty安全。
關(guān)于linux 前臺進(jìn)程 是什么的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
分享文章:深入了解Linux前臺進(jìn)程特性(linux前臺進(jìn)程是什么)
當(dāng)前網(wǎng)址:http://m.fisionsoft.com.cn/article/dpopose.html


咨詢
建站咨詢
