您好,登錄后才能下訂單哦!
今天小編給大家分享一下linux中ppid的概念是什么的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。
在linux中,ppid指的是父進(jìn)程的PID,即父進(jìn)程的進(jìn)程ID號(hào)。當(dāng)一個(gè)進(jìn)程被創(chuàng)建時(shí),創(chuàng)建它的那個(gè)進(jìn)程被稱作父進(jìn)程,子進(jìn)程用PPID指出誰(shuí)是其父進(jìn)程;可執(zhí)行“ps -ef | grep 進(jìn)程名”命令來(lái)查看,輸出結(jié)果的第三列就是ppid值。
本教程操作環(huán)境:linux5.9.8系統(tǒng)、Dell G3電腦。
一個(gè)進(jìn)程包含多個(gè)屬性參數(shù),通過(guò)使用 ps 命令,我們可以查看當(dāng)前系統(tǒng)中有關(guān)進(jìn)程的詳細(xì)信息,例如:
[root@localhost ~]# ps -le F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIMECMD 4 S 0 1 0 0 80 0 - 718 - ? 00:00:02 init 1 S 0 2 0 0 80 0 - 0 - ? 00:00:00 kthreadd …省略部分輸出…
可以看到,每個(gè)進(jìn)程都包含 F、S、UID、PID 等屬性,這些屬性參數(shù)決定了進(jìn)程被處理的先后順序、能夠訪問(wèn)的資源等,對(duì)于系統(tǒng)管理員和程序員都非常重要。
下面本篇文章就來(lái)給大家介紹一下UID、PID、PPID等常用屬性參數(shù)。
UID(真實(shí)用戶ID)
UID 用戶身份證明(User Identification)的縮寫(xiě)。UID用戶在注冊(cè)后,系統(tǒng)會(huì)自動(dòng)的給你一個(gè)UID的數(shù)值。意思就是給這名用戶編個(gè)號(hào)。
只有進(jìn)程的創(chuàng)建者和 root 用戶才有權(quán)利對(duì)該進(jìn)程進(jìn)行操作,因此記錄一個(gè)進(jìn)程的創(chuàng)建者(也就是屬主)就顯得非常必要。進(jìn)程的 UID 就是其創(chuàng)建者的用戶 ID 號(hào),用于標(biāo)識(shí)進(jìn)程的屬主。
EUID(有效用戶ID)
除了UID外,Linux 還為進(jìn)程保存了一個(gè)“有效用戶 ID 號(hào)”,被稱作 EUID。這個(gè)特殊的 UID 號(hào)用來(lái)確定進(jìn)程對(duì)某些資源和文件的訪問(wèn)權(quán)限。在絕大部分情況下,進(jìn)程的 UID 和 EUID 是一樣的,除了著名的 setuid 程序。
那么,什么是 setuid 程序呢?前面講了 passwd 命令,這個(gè)命令允許用戶修改自己的登錄口令。但讀者是否考慮過(guò)這個(gè)問(wèn)題,密碼保存在 /etc/shadow 文件中,這個(gè)文件對(duì)普通用戶是不可讀的,那么用戶為什么能夠通過(guò)修改 shadow 文件來(lái)修改自己的口令呢?
這就是 setuid 的妙處了,通過(guò)使 passwd 在執(zhí)行階段具有文件所有者(也就是 root)的權(quán)限,讓用戶臨時(shí)有了修改 shadow 文件的能力(當(dāng)然這種能力是受到限制的)。因此,passwd 就是一個(gè)典型的 setuid 程序,其 UID 是當(dāng)前執(zhí)行這個(gè)命令的用戶 ID,而 EUID 則是 root 用戶的 ID(也就是 0)。
PID(進(jìn)程的 ID 號(hào))
系統(tǒng)為每個(gè)用戶都分配了用于標(biāo)識(shí)其身份的 ID 號(hào)(UID)。同樣地,進(jìn)程也有這樣一個(gè) ID 號(hào),被稱作 PID(Process Identification)。
要知道,用 ID 確定進(jìn)程的方法是非常有好處的,因?yàn)閷?duì)于計(jì)算機(jī)而言,認(rèn)識(shí)數(shù)字永遠(yuǎn)比認(rèn)識(shí)一串字符方便得多,Linux 沒(méi)有必要去理解那些對(duì)人類(lèi)非常“有意義”的進(jìn)程名。
不僅 Linux 自己使用 PID 來(lái)確定進(jìn)程,還要求用戶在管理進(jìn)程時(shí),也提供相應(yīng)的 PID 號(hào)。事實(shí)上,幾乎所有的進(jìn)程管理工具接受的也都是 PID 號(hào),而不是進(jìn)程名。
PPID(父進(jìn)程的 PID)
在 Linux 中,所有的進(jìn)程都必須由另一個(gè)進(jìn)程創(chuàng)建(除了在系統(tǒng)引導(dǎo)時(shí),由內(nèi)核自主創(chuàng)建并安裝的那幾個(gè)進(jìn)程)。當(dāng)一個(gè)進(jìn)程被創(chuàng)建時(shí),創(chuàng)建它的那個(gè)進(jìn)程被稱作父進(jìn)程,而這個(gè)進(jìn)程則相應(yīng)地被稱作子進(jìn)程。
子進(jìn)程使用 PPID 指出誰(shuí)是其“父親”,很容易可以理解,PPID 指的就是其父進(jìn)程的 PID。
注意,在以上的敘述中,多次用到了“創(chuàng)建”這個(gè)詞,這是出于表述和理解上的方便,事實(shí)上,在 Linux 中進(jìn)程是不能被“憑空”創(chuàng)建的,換句話說(shuō),Linux 沒(méi)有提供一種系統(tǒng)調(diào)用讓?xiě)?yīng)用程序“創(chuàng)建”一個(gè)進(jìn)程,應(yīng)用程序只能通過(guò)克隆自己來(lái)產(chǎn)生新進(jìn)程。
說(shuō)明:
PID和PPID都是非零的整數(shù)。
PID是唯一的,一個(gè)PID只標(biāo)識(shí)一個(gè)進(jìn)程。
一個(gè)進(jìn)程創(chuàng)建的另一個(gè)新進(jìn)程稱為子進(jìn)程。相反地,創(chuàng)建子進(jìn)程的進(jìn)程稱為父進(jìn)程。
對(duì)于一個(gè)普通的用戶進(jìn)程,它的父進(jìn)程就是執(zhí)行它的哪個(gè)Shell,對(duì)于Linux而言,Shell就是bash。
Linux 查看進(jìn)程的PID和PPID的方法
示例:查看nginx進(jìn)程的PID編號(hào),ps -ef | grep nginx
執(zhí)行之后,即可返回進(jìn)程的PID和PPID編號(hào)
命令使用擴(kuò)展,強(qiáng)制結(jié)束某進(jìn)程
示例,強(qiáng)制結(jié)束nginx進(jìn)程
以上就是“l(fā)inux中ppid的概念是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。