Linux-孤兒進程和僵死進程

文章目錄

  • 孤兒進程
    • 概述
  • 僵死進程
    • 概述

孤兒進程

概述

父進程運行結束,子進程還在運行,此時,子進程就成了孤兒進程(Orphan Process)

每當出現一個孤兒進程的時候,內核就把孤兒進程的父進程設置為 init ,而 init 進程會循環地 wait() 它的已經退出的子進程。這樣,當一個孤兒進程凄涼地結束了其生命周期的時候,init 進程就會代表黨和政府出面處理它的一切善后工作。

因此孤兒進程并不會有什么危害。

  1  #include <stdio.h>2  #include <string.h>3 #include <stdlib.h>4 5 #include <unistd.h>6 7 8 9 //孤兒進程10 11 int test01()12 {13     pid_t pid = -1;14 15     pid = fork();16     if(-1 == pid)17     {18         perror("fork"); 19         goto err0; 20     } 21     if(pid >0) 22     { 23         sleep(2); 24         printf("父進程退出 %d\n", getpid()); 25         exit(0); 26     } 27  28     while(1) 29     { 30         printf("子進程工作 %d...\n", getppid()); 31         sleep(1); 32     } 33  34     return 0; 35 err0: 36     return 1; 37 } 38 int main(void) 39 { 40     test01(); 41     return 0; 42 }

僵死進程

概述

進程終止,父進程尚未回收,子進程殘留資源(PCB)存放于內核中,變成僵尸(Zombie)進程。

這樣就會導致一個問題,如果進程不調用wait() 或 waitpid() 的話, 那么保留的那段信息就不會釋放,其進程號就會一直被占用,但是系統所能使用的進程號是有限的,如果大量的產生僵尸進程,將因為沒有可用的進程號而導致系統不能產生新的進程,此即為僵尸進程的危害,應當避免。

  1 #include <stdio.h>2 #include <string.h>3 #include <stdlib.h>4 5 #include <unistd.h>6 7 8 9 int test01()10 {11     pid_t pid = -1;12 13     pid = fork();14     if(-1 == pid)15     {16         perror("fork");17         goto err0;18     }19 20     if(0 == pid)21     {22         printf("3s后子進程退出\n");23         sleep(3);24         printf("子進程退出...\n");25         exit(0);26     }27     else28     {29 30         sleep(3000);31     }32 33 34     return 0;35 err0:36     return 1;37 }38 39	int main()40	{41		test01();42		return 0;43	}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/920207.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/920207.shtml
英文地址,請注明出處:http://en.pswp.cn/news/920207.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Redis 進階】----主從復制(重點理解流程和原理)

在分布式系統中為了解決單點問題&#xff08;某個服務器程序只有一個節點&#xff08;只搞一個物理服務器來部署這個服務器程序&#xff09;。可用性不高&#xff1a;如果這個機器掛了意味著服務就中斷了&#xff1b;性能 / 支持的并發量比較有限&#xff09;。通常會把數據復制…

【Redisson】redis最佳實踐-RedissonUtils+Caffeine

RedissonUtils - 企業級 Redis 緩存工具庫 - 二級緩存 項目地址: hhttps://gitee.com/chen934298133/redisson-utils問題反饋: Issues郵箱: chen934298133163.com &#x1f4d6; 項目簡介 RedissonUtils 是一個基于 Redisson 的企業級 Redis 緩存工具庫&#xff0c;提供了完…

QT(QTableWidget)

QT6QTableWidget QTableWidget是一種Item Widget組件&#xff0c;它以表格形式和管理數據&#xff0c;表格的每個單元格關聯一個QTableWidgetItem對象&#xff0c;可以設置每個單元格的文字內容、字體、文字顏色、背景色、圖標等&#xff0c;還可以有復選框。每個單元格還可以存…

Sentinel相關記錄

系列文章目錄 draft Sentinel 是阿里巴巴開源的 輕量級服務防護組件&#xff0c;主要用于實現以下功能&#xff1a;流量控制FlowRule&#xff08;Rate Limiting&#xff09;&#xff1a;限制單位時間內的請求量&#xff0c;防止系統過載。 熔斷降級DegradeRule&#xff08;Ci…

2025年滲透測試面試題總結-29(題目+回答)

安全領域各種資源&#xff0c;學習文檔&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具&#xff0c;歡迎關注。 目錄 二百四十一、XSS 設置Http-Only如何繞過 二百四十二、XSS攻擊手段分類 二百四十三、高殺軟覆蓋工作組的滲…

如何用Wireshark捕獲當前房間路由器和主機的數據包

一、前期工作 在我的這篇文章中&#xff1a; Wireshark USRP聯合波形捕獲&#xff08;上&#xff09;-CSDN博客 通過192.168.1.103這個主機ip篩選Wireshark捕獲的數據包&#xff0c;認為Source和Direction中至少一個包含192.168.1.103才能代表路由器和主機之間的WiFi信號。 …

深度解析游戲引擎中的相機:視圖矩陣

在現代游戲引擎中&#xff0c;相機系統是不可或缺的一部分。它決定了玩家在游戲中看到的視角和場景。而視圖矩陣作為相機系統的核心組件之一&#xff0c;起到了至關重要的作用。本文將深入探討視圖矩陣的原理、計算方法及其在游戲引擎中的應用。 視圖矩陣的基本概念 視圖矩陣…

96、23種設計模式之原型模式(5/23)

原型模式&#xff08;Prototype Pattern&#xff09;是創建型設計模式的一種&#xff0c;其核心思想是通過復制現有對象&#xff08;原型&#xff09;來創建新對象&#xff0c;而非通過構造函數或工廠方法從頭構建。該模式將對象的創建過程從構造邏輯轉移到復制操作&#xff0c…

【python與生活】如何用Python寫一個簡單的自動整理文件的腳本?

用 Python 寫一個自動整理文件的腳本很簡單&#xff0c;核心思路是&#xff1a;按文件后綴&#xff08;如 .jpg、.pdf&#xff09;將文件分類&#xff0c;移動到對應的文件夾&#xff08;如「圖片」「文檔」&#xff09;中。以下是一個實用的實現方案&#xff0c;新手也能輕松修…

SELinux相關介紹

目錄 1.SELinux 概述 2.SELinux 的執行模式 3.SELinux 的使用 1.SELinux 概述 SELinux&#xff08; Security Enhanced Linux 安全性增強的Linux&#xff09;&#xff0c;由美國國家安全局 NSA&#xff08;National Security Agency&#xff09;開發&#xff0c;構建與 Kernel …

【C語言練習】漢諾塔

一、題目 介紹&#xff1a;漢諾塔&#xff08;Tower of Hanoi&#xff09;&#xff0c;又稱河內塔&#xff0c;是一個源于印度古老傳說的益智玩具。大梵天創造世界的時候做了三根金剛石柱子&#xff0c;在一根柱子上從下往上按照大小順序摞著64片黃金圓盤。大梵天命令婆羅門把圓…

隨機森林實戰:在鳶尾花數據集上與決策樹和邏輯斯蒂回歸進行對比

前言 集成學習通過組合多個模型的優勢&#xff0c;常能獲得比單一模型更優的性能&#xff0c;隨機森林便是其中的典型代表。它基于 Bagging 思想&#xff0c;通過對樣本和特征的雙重隨機采樣&#xff0c;構建多棵決策樹并綜合其結果&#xff0c;在降低過擬合風險的同時&#xf…

(計算機網絡)TCP 三握中第三次 ACK 丟失會發生什么?

在 TCP 的三次握手過程中&#xff0c;如果 第三次 ACK 丟失&#xff0c;TCP 是如何保證連接可靠建立的呢&#xff1f;1?? 場景說明第三次 ACK&#xff1a;客戶端發送給服務器的 ACK&#xff0c;確認服務器的 SYN-ACK。假設該 ACK 在網絡傳輸過程中丟失。2?? 客戶端狀態客戶…

容智Report Agent2.0重磅發布!重新定義企業數據分析AI時代

在數據成為生產要素之一的今天&#xff0c;很多企業依然面臨這樣的困境&#xff1a; 想要一份年度財務分析&#xff0c;財務團隊可能要忙半個月甚至一個月&#xff1b;想查一個業務指標&#xff0c;要先找出在哪個系統&#xff0c;再申請權限、寫SQL、調報表&#xff0c;折騰半…

高階數據結構---ST表

hello大家好&#xff0c;今天是2025年8月23日&#xff0c;我要來給大家分享的是一個高階數據結構---ST表。 一&#xff1a;引入 1.RMQ問題&#xff1a; 對于一個長度為 n 的序列&#xff0c;有 m 次查詢操作&#xff0c;每次查詢為一個區間 [l&#xff0c;r] 的最大值&#…

docker 安裝nacos(vL2.5.0)

查找nacos 的所需的鏡像版本 https://hub.docker.com/r/nacos/nacos-server/tags 拉取你所需的版本&#xff08;我們用v2.5.0&#xff09; docker pull nacos/nacos-server:v2.5.0 注意&#xff1a;因為我們需要掛載外配置文件 直接用volume 掛載目錄 缺少初始文件報錯 我們…

在github上通過dmca數字版權申訴侵權并刪除侵權倉庫

DMCA是什么&#xff1f; 《數字千年版權法案》&#xff08;DMCA&#xff09;為版權所有者&#xff08;包括軟件開發人員&#xff09;創建了一個標準化的流程&#xff0c;要求GitHub刪除侵權內容。您可以在美國版權局的官方網站上找到有關DMCA的更多信息。有關GitHub如何處理DM…

AI安全監控與人才需求的時間悖論(對AI安全模型、AI安全人才需求的一些思考)

當監控者與被監控者都是AI時&#xff0c;誰來監控監控者&#xff1f;這個看似簡單的問題&#xff0c;卻揭示了人工智能安全領域的根本性困境。一、問題的提出&#xff1a;當AI監控AI 隨著大語言模型和生成式AI的快速發展&#xff0c;AI系統在元認知層面的能力越來越強&#xff…

AI模型部署 - 大型語言模型(LLM)推理部署中的實際顯存評估

目錄 第一部分:大型語言模型(LLM)推理顯存占用的核心原理 1.1 顯存占用的主要構成部分 1.2 影響顯存占用的關鍵因素 1.2.1 模型架構:MoE vs. 稠密模型 1.2.2 上下文長度與并發數 1.2.3 部署方式與推理框架 1.2.4 硬件能力 第二部分:顯存占用的精確計算方法 2.1 模…

【大語言模型 16】Transformer三種架構深度對比:選擇最適合你的模型架構

【大語言模型 16】Transformer三種架構深度對比&#xff1a;選擇最適合你的模型架構 關鍵詞&#xff1a;Transformer架構&#xff0c;Encoder-Only&#xff0c;Decoder-Only&#xff0c;Encoder-Decoder&#xff0c;BERT&#xff0c;GPT&#xff0c;T5&#xff0c;模型選擇&…