




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第7章進程環境及進程屬性 進程環境及進程屬性進程環境及進程屬性 進程管理及控制進程管理及控制 Linux特殊進程特殊進程 2022-7-72進程資源 2022-7-73進程狀態 2022-7-74進程基本屬性 -進程號PID) 2022-7-75父進程號PPID) 2022-7-76進程組號PGID) 進程組是一個或多個進程的集合。它們與同一作業相關聯,可以接受來自同一終端的各種信號關于信號的概念參閱第8章)。每個進程組都有唯一的進程組號,進程組號是可以在用戶層修改的。 2022-7-77會話 會話session是一個或多個進程組的集合。系統調用函數getsid()用來獲取某個進程的會話號SI
2、D。如果調用此函數的進程不是一個進程組的組長,則此函數會創建一個新會話:該進程變成新會話首進程session leader),會話首進程是創建該會話的進程。該進程成為一個新進程組的組長進程。新進程組PGID是該調用進程的PID。該進程沒有控制終端。如果在調用setsid之前該進程就有一個控制終端,那么這種聯系也會被中斷。 2022-7-78控制終端 會話和進程組有以下一些特點:(1一個會話可以有一個控制終端,建立與控制終端連接的會話首進程被稱為控制進程。(2一個會話中的幾個進程組可被分成一個前臺進程組和幾個后臺進程組,如果一個會話有一個控制終端,則它有一個前臺進程組。(3無論何時鍵入終端的中斷
3、鍵DELETE或Ctrl+C),就會將中斷信號發送給前臺進程組的所有進程,無論何時鍵入終端的退出鍵Ctrl+),就會將退出信號發送給前臺進程組的所有進程,如果終端檢測到調制解調器或網絡已經斷開連接,則將掛斷信號發送給控制進程會話首進程)。2022-7-79終端處理函數2022-7-710進程用戶屬性 進程真實用戶號RUID) 真實用戶組號RGID)有效用戶號EUID)有效用戶組號EGID) 2022-7-711進程真實用戶號RUID) 2022-7-712進程有效用戶號EUID) EUID主要用于權限檢查。多數情況下,EUID和UID相同。如果可執行文件的setuid位有效,在除該文件的擁有者
4、之外的用戶運行該程序時,EUID和UID則不相同。即當某可執行文件設置了setgid位見文件屬性章節介紹后,任何用戶包括root用戶運行此程序時,其有效用戶組EUID為該文件的擁有者。 2022-7-713普通用戶能夠修改自己的密碼的原因 /etc/passwd文件用來存儲所有用戶信息,任何用戶都可以修改自己的密碼,顯然,其它用戶在執行/usr/bin/passwd命令時修改了/etc/passwd文件并不是說可以使用vi編輯器修改),但是,通過查看/etc/passwd文件的權限,發現普通用戶對此文件僅有讀的權限。是什么原因導致普通用戶可以修改/etc/passwd文件呢?這是因為用戶執行“
5、/usr/bin/passwd命令時,/usr/bin/passwd文件設置了setuid位,在執行此程序(/usr/bin/passwd時,該用戶所擁有的權限等同于文件“/usr/bin/passwd的擁有者root的權限,而root用戶擁有對/ect/passwd文件寫的權限,因此普通用戶可以通過/usr/bin/passwd來修改/etc/passwd文件的內容。如果清除掉“/usr/bin/passwd文件的setuid權限位,普通用戶就不能修改自己的密碼了。 2022-7-714進程用戶組號GID) 創建進程的用戶所在的組號為該進程的進程用戶組號GID)。可以通過調用getgid()
6、函數來獲得當前進程的真實用戶組號GID)。 2022-7-715有效進程用戶組號EGID) 第7章進程環境及進程屬性 進程環境及進程屬性進程環境及進程屬性 進程管理及控制進程管理及控制 Linux特殊進程特殊進程 2022-7-717創建進程 fork函數調用成功后,其子進程會復制父進程的幾乎所有信息除PID等信息),主發復制父親進程的代碼段、數據段、BSS、堆、棧關于進程結構參閱本書第3章)、打開的文件描述符但共用同一個文件表項)。另外,子進程從父進程繼承下列屬性:實際用戶/組號、有效用戶/組號以及保留的用戶/組號、進程組號、環境變量、對文件的執行時關閉標志、信號處理方式設置、信號掩碼、當前
7、工作目錄、根目錄、文件模式創建掩碼、文件大小限制等信息。2022-7-718例如2022-7-719對打開文件的處理 2022-7-720驗證fork是否在子進程復制驗證代碼驗證數據段使用全局、靜態初始化變量),BSS段未初始化全局,靜態變量),棧局部變量),堆malloc返回空間)。代碼見教材。2022-7-721vfork /* Clone the calling process, but without copying the whole address space. The calling process is suspended until the new process exits
8、 or is replaced by a call to execve. Return -1 for errors, 0 to the new process, and the process ID of the new process to the old process. */extern _pid_t vfork (void) ;#endif 2022-7-722Vfork與fork比較驗證代碼見教材代碼。2022-7-723execX函數執行新代碼2022-7-724execX函數比較函數使用文件名使用路徑名使用參數表(函數出現字母l)使用argv(函數出現字母v) execl exe
9、clp execle execvexecvp execve2022-7-725執行新代碼對打開文件的處理 在執行exec系列函數時,默認情況下,新代碼對于可以使用在原來代碼中打開的文件描述符,即執行exec系列函數時,并不關閉原來的文件描述符。 但如果調用fcntl函數即關閉FD_CLOEXEC項,則在執行execX系列函數后將關閉原來打開的文件描述符。 2022-7-726等待進程結束 調用wait()函數的父親進程將等待該進程的任意一個子進程結束后才繼續執行如果有多個子進程,只需要等待其中的一個進程)。 2022-7-727waitpid2022-7-728退出進程 可以通過以下方式結束進
10、程。向exit或_exit發布一個調用。在main函數中執行return。隱含的離開main函數。2022-7-729函數說明2022-7-730示例代碼2022-7-731exit 與_exit2022-7-732exit與return的區別 C語言關鍵字與函數exit()在main函數退出時有相似之處,但兩者有本質的區別:return 退出當前函數主體,exit()函數退出當前進程,因此,在main函數里面return(0)和exit(0)完成一樣的功能。return僅僅從子函數中返回,而子進程用exit()退出,調用exit()時要調用一段終止處理程序,然后關閉所有I/O流。2022-7
11、-733示例代碼2022-7-734修改進程用戶相關信息 access核實用戶權限 2022-7-735設置進程真實用戶RUID 2022-7-736設置進程有效用戶EUID 第7章進程環境及進程屬性 進程環境及進程屬性進程環境及進程屬性 進程管理及控制進程管理及控制 Linux特殊進程特殊進程 2022-7-738守候進程 守護進程Daemon是運行在后臺的一種特殊進程,其脫離于終端,之所以脫離于終端是為了避免進程被任何終端所產生的信息所打斷,其在執行過程中的信息也不在任何終端上顯示。守候進程周期性地執行某種任務或等待處理某些發生的事件,Linux的大多數服務器就是用守護進程實現的。比如,Internet服務器inetd,Web服務器httpd等。一般情況下,守護進程可以通過以下方式啟動:在系統啟動時由啟動腳本啟動,這些啟動腳本通常放在/etc/rc.d目錄下;利用inetd超級服務器啟動,如telnet等;由cron定時啟動以及在終端用nohup啟動的進程也是守護進程。2022-7-739守護進程編程要點 2022-7-740守護進程編程要點2022-7-741守護進程編程要點202
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025公司職工安全培訓考試試題典型題
- 2025公司管理人員安全培訓考試試題【基礎題】
- 2025簡化版租房合同協議
- 2025年個體工商戶轉手合同
- 2025合同風險管理常見法律挑戰與應對策略
- 2025供應商合作協議合同
- 2025年電磁學計量標準器具項目建議書
- 2025常用的農產品購銷合同范本
- 2025超市員工勞動合同模板
- 2025合作合同個體工商戶合資經營協議書
- 2025購銷合同(電子產品)范文
- 基于全生命周期的綠色建筑成本影響因素研究
- 2025年普法知識競賽題庫及答案(共80題)
- 心力衰竭護理查房 課件
- 【課時練基礎作業】人教版四年級數學下冊第四單元《期中計算能力測試》(含答案)
- 樹木修剪合同協議
- 2025年蘭州市九年級診斷考試(一診)物理試卷
- 【初中地理】西亞課件-2024-2025學年人教版(2024)七年級地理下冊
- 2024年4月27日福建省事業單位《綜合基礎知識》真題及答案
- 農民工工資專用賬戶管理制度
- 藥物治療管理MTM
評論
0/150
提交評論