首頁  >  文章  >  運維  >  linux ppid是什麼意思

linux ppid是什麼意思

青灯夜游
青灯夜游原創
2022-04-12 17:31:3210973瀏覽

在linux中,ppid指的是父行程的PID,也就是父行程的行程ID號。當一個進程被創建時,創建它的那個進程被稱作父進程,子進程用PPID指出誰是其父進程;可執行「ps -ef | grep 進程名」命令來查看,輸出結果的第三列就是ppid值。

linux ppid是什麼意思

本教學操作環境:linux5.9.8系統、Dell G3電腦。

一個進程包含多個屬性參數,透過使用ps 命令,我們可以查看當前系統中有關進程的詳細信息,例如:

[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
…省略部分输出…

可以看到,每個進程都包含F 、S、UID、PID 等屬性,這些屬性參數決定了進程被處理的先後順序、能夠存取的資源等,對於系統管理員和程式設計師都非常重要。

下面這篇文章就來跟大家介紹UID、PID、PPID等常用屬性參數。

UID(真實使用者ID)

UID 使用者身分證明(User Identification)的縮寫。 UID使用者在註冊後,系統會自動的給你一個UID的數值。意思就是給這名用戶編個號碼。

只有進程的創建者和 root 使用者才有權利對該進程進行操作,因此記錄一個進程的創建者(也就是屬主)就顯得非常必要。進程的 UID 就是其創建者的使用者 ID 號,用來標識進程的屬主。

EUID(有效用戶ID)

除了UID外,Linux 還為進程保存了一個“有效用戶 ID 號碼”,被稱為 EUID。這個特殊的 UID 號碼用來決定進程對某些資源和檔案的存取權限。在絕大部分情況下,進程的 UID 和 EUID 是一樣的,除了著名的 setuid 程式。

那麼,什麼是 setuid 程式呢?前面講了 passwd 指令,這個指令允許使用者修改自己的登入口令。但讀者是否考慮過這個問題,密碼保存在 /etc/shadow 文件中,這個文件對普通用戶是不可讀的,那麼用戶為什麼能夠透過修改 shadow 文件來修改自己的口令呢?

這就是setuid 的妙處了,透過讓passwd 在執行階段具有檔案擁有者(也就是root)的權限,讓使用者暫時有了修改shadow 檔案的能力(當然這種能力是受到限制的)。因此,passwd 就是一個典型的 setuid 程序,其 UID 是目前執行這個指令的使用者 ID,而 EUID 則是 root 使用者的 ID(也就是 0)。

PID(進程的 ID 號碼)

系統為每個使用者都指派了用於識別其身分的 ID 號碼(UID)。同樣地,進程也有這樣一個 ID 號,被稱為 PID(Process Identification)。

要知道,用ID 確定進程的方法是非常有好處的,因為對於電腦而言,認識數字永遠比認識一串字元方便得多,Linux 沒有必要去理解那些對人類非常「有意義」的進程名。

不僅 Linux 自己使用 PID 來決定進程,也要求使用者在管理進程時,也要提供對應的 PID 號碼。事實上,幾乎所有的進程管理工具接受的也都是 PID 號,而不是進程名。

PPID(父行程的PID)

在Linux 中,所有的行程都必須由另一個行程建立(除了在系統開機時,由核心自主建立並安裝的那幾個進程)。當一個進程被創建時,創建它的那個進程被稱為父進程,而這個進程則相應地被稱作子進程。

子程序使用 PPID 指出誰是其“父親”,很容易可以理解,PPID 指的就是其父進程的 PID。

注意,在以上的敘述中,多次用到了「創建」這個詞,這是出於表達和理解上的方便,事實上,在Linux 中進程是不能被「​​憑空」創建的,換句話說,Linux 沒有提供一種系統呼叫讓應用程式「創建」一個進程,應用程式只能透過克隆自己來產生新進程。

說明:

PID和PPID都是非零的整數。

PID是唯一的,一個PID只標識一個行程。

一個行程所建立的另一個新行程稱為子行程。相反地​​,創建子進程的進程稱為父進程。

對於一個普通的使用者進程,它的父進程就是執行它的哪個Shell,對於Linux而言,Shell就是bash。

Linux 查看進程的PID和PPID的方法

linux ppid是什麼意思

#範例:查看nginx程式的PID編號,ps -ef | grep nginx

linux ppid是什麼意思

執行後,即可傳回進程的PID和PPID編號

linux ppid是什麼意思

指令使用擴展,強制結束某行程

linux ppid是什麼意思

範例,強制結束nginx進程

linux ppid是什麼意思

#相關推薦:《Linux影片教學

以上是linux ppid是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn