Linux多进程:orphan process——孤儿进程

2023-11-07

/*


    孤儿进程orphan process
    当父进程比子进程先结束,这样的子进程就成为了孤儿进程。
    每当出现一个孤儿进程,内核会把孤儿进程的父进程设置为init(托管)
    init进程会循环wait()孤儿进程结束,然后做剩下的善后,回收资源
    因此,孤儿进程并没有什么危害

    init进程的pid: 1

    命令ps aux:查看所有进程

    运行可执行程序,切换到后台,有输出就输出到前台
    
*/

#include <unistd.h> 
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <stdlib.h>

int main() {
    int ret = fork();

    if(ret == -1) {
        perror("fork");
        return -1;

    } else if(ret > 0) {
        //父进程
        printf("this is parent process, pid :%d, ppid :%d\n", getpid(), getppid());
        exit(0);
    } else if(ret == 0) {
        //子进程
        sleep(1);
        //让父进程比子进程先结束 
        printf("this is child process, pid :%d, ppid :%d\n", getpid(), getppid());
    }

    return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux多进程:orphan process——孤儿进程 的相关文章

  • Linux:通过网络进行屏幕桌面视频捕获和 VNC 帧速率

    抱歉 文字墙很长 TL DR VNC 连接的帧速率是多少 以帧 秒为单位 或者更确切地说 由谁决定 客户端还是服务器 对于桌面屏幕捕获的任何其他建议 但 正确的时间编码 具有不抖动的帧速率 具有稳定的周期 并有可能将其作为未压缩 或无损 图
  • 当存在点和下划线时,使用 sed 搜索并替换

    我该如何更换foo with foo sed 只需运行 sed s foo foo g file php 不起作用 逃离 sed s foo foo g file php Example cat test txt foo bar sed s
  • 如何查找或计算Linux进程的页表大小和其他内核占用?

    我怎样才能知道 Linux 进程页表有多大 以及任何其他可变大小的进程统计 如果您真的对页表感兴趣 请执行以下操作 cat proc meminfo grep PageTables PageTables 24496 kB
  • 操作系统崩溃的常见原因[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有兴趣了解 操作系统崩溃 不限于Windows崩溃 最常见的技术原因 从操作系统编程的角度 有哪些 我正在寻找一个不像 打开太多应用
  • sed 仅最后一个匹配模式

    我想sed仅文本文件的最后一个匹配模式 输入文件 boy boy girl boy 输出文件 boy boy girl boys 一种方法是反转文件 仅替换第一个匹配项 然后再次反转 tac
  • Linux下的C#,Process.Start()异常“没有这样的文件或目录”

    我在使用 Process 类调用程序来启动程序时遇到问题 可执行文件的层次结构位于 bin 目录下 而当前工作目录需要位于 lib 目录下 project bin a out this is what I need to call lib
  • Snap-confine 具有提升的权限,并且不受限制,但应该受到限制。拒绝继续避免权限升级攻击

    我已经使用 snap 一段时间了 但最近升级后 当我尝试打开任何应用程序时 出现此错误 Snap confine has elevated permissions and is not confined but should be Refu
  • 在单个命令中使用前缀重命名文件夹中的所有文件

    重命名带有前缀的文件夹中的所有文件 Unix 假设一个文件夹有两个文件 a txt b pdf 那么它们都应该从一个命令重命名为 Unix a txt Unix b pdf 如果您的文件名包含没有空格并且你没有任何子目录 你可以使用一个简单
  • Mono 和 WebRequest 速度 - 测试

    在 mono 4 6 2 linux 中 我注意到 wget 下载文件的速度与webclient DownloadString 所以我做了一个小测试来调查 为什么 wget 明显比 C 快 根据我自己的实验 使用 wget 下载 手动读取文
  • Linux TCP服务器:在接受连接之前读取客户端的IP地址

    Related C Winsock API如何在接受连接之前获取连接客户端IP https stackoverflow com questions 716209 c winsock api how to get connecting cli
  • 退出 bash 脚本但保持进程运行

    我正在运行服务器 需要使用参数执行以下命令 这些脚本目前工作得很好 但问题是当我运行脚本时我无法返回到控制台 它在控制台中保持运行 如果我强行停止它 那么该过程也会停止 我想继续运行该进程并返回到控制台 bin sh php home st
  • 静态链接共享对象?或者损坏的文件?

    我有一个从专有来源获得的库 我正在尝试链接它 但出现以下错误 libxxx so 文件无法识别 文件格式无法识别 Collect2 ld 返回 1 退出状态 确实 ldd libxxx so statically linked 这究竟意味着
  • 编写多个mysql脚本

    是否可以在复合脚本中包含其他 mysql 脚本 理想情况下 我不想为包含的脚本创建存储过程 对于较大的项目 我想分层维护几个较小的脚本 然后根据需要组合它们 但现在 我很乐意学习如何包含其他脚本 source是一个内置命令 您可以在 MyS
  • 如何使用ffmpeg重叠和合并多个音频文件?

    我正在尝试将多个音频文件合并到一个文件中 但我可以使用以下命令来连接 而不是连接 ffmpeg v debug i file1 wav i file2 wav i file3 wav filter complex 0 0 concat n
  • Xenomai 中的周期性线程实时失败

    我正在创建一个周期性线程 它在模拟输出上输出方波信号 我正在使用 Xenomai API 中的 Posix Skin 和 Analogy 我使用示波器测试了代码的实时性能 并查看了方波信号 频率为 1kHz 的延迟 我应该实现 250us
  • sqlite 插入需要很长时间

    我正在将不到 200 000 行插入到 sqlite 数据库表中 我只是在终端中通过 sqlite3 使用一个非常简单的 sql 文件 我打赌它已经运行了至少 30 分钟 这是正常现象还是我应该关闭该过程并尝试不同的方法 sqlite中的插
  • Gradle 1.3:build.gradle 不构建类

    这里有一个新问题 我有一个 build gradle 文件apply plugin java在其中 并与 java 项目 包关联 当我跑步时gradle build从命令行我得到 compileJava UP TO DATE process
  • Bash 脚本 - 迭代 find 的输出

    我有一个 bash 脚本 其中需要迭代 find 命令输出的每一行 但似乎我正在迭代 find 命令中的每个单词 以空格分隔 到目前为止我的脚本看起来像这样 folders find maxdepth 1 type d for i in f
  • perf stat中的cycles注释是什么意思

    8 014196 task clock 0 004 CPUs utilized 204 context switches 0 025 M sec 32 cpu migrations 0 004 M sec 0 page faults 0 0
  • 如何通过代理将套接字连接到http服务器?

    最近 我使用 C 语言编写了一个程序 用于连接到本地运行的 HTTP 服务器 从而向该服务器发出请求 这对我来说效果很好 之后 我尝试使用相同的代码连接到网络上的另一台服务器 例如 www google com 但我无法连接并从网络中的代理

随机推荐

  • Devops学习实践(三) jenkins集成findbugs

    随着工作的要求 devops作为今年工作的一个重点 由此也引发了自己对于devops相关的工具和技术的学习和实践 基于上述背景 这个系列将逐步的介绍SVN的安装和配置 jenkins安装和配置 reviewboard findbugs ch
  • SourceTree 重置提交、合并、撤销、回滚

    SourceTree重置当前分支到此次提交 使用场景 已提交未推送的修改撤销 想把某一次的错误修改全部撤销 当前发布代码有bug需要切到上次提交发布版本 Git中的HEAD解释 使用最新一次提交重制暂存区 git reset HEAD fi
  • 2019-6-26 opencv图像分割(image segmentation)

    图像分割 image segmentation 是图像预处理的重要步骤之一 它的主要目标是将图像划分为不同的区域 这些区域与真实世界中的物体具有一定的关联成分 图像分割的方法大体分为三种 基于阈值的分割 基于边缘的分割和基于区域的分割 理论
  • #pragma pack笔记

    申明 内容来自stackoverflow 仅为方便自己以后忘记了再看时方便而转 https www google com hk url sa t rct j q esrc s source web cd 7 ved 0CEUQFjAG ur
  • JS如何请求接口数据

    在JavaScript中 可以使用AJAX Asynchronous JavaScript and XML 技术与服务器进行异步通信 AJAX允许您通过发送HTTP请求从服务器获取数据 并在无需刷新整个页面的情况下更新部分页面内容 以下是使
  • 什么是inode

    2008 02 28skate 今天一个朋友去面试 考官问了他几个关于算法问题 还有一些概念 其中一个是什么是inode 1 inode 是作甚么的 一个 filesystem 可以粗略地分成 inode table 与 data area
  • 三八节致敬女程序员

    在历史中 日志既可以作为文献资料 又可以作为查案辅证 既可以作为航海记录 又可以作为海难追源 而随着时间的推移 科技的发展 时代逐渐赋予了日志更为广泛的内涵 当人们还在谈论历史日志 航海日志时 计算机时代便已悄然而至 开启了 日志数据 的大
  • Voice Control for ChatGPT 轻松实现使用语音与ChatGPT进行对话。

    缘由 日常生活中 我们与亲人朋友沟通交流一般都是喜欢语音的形式来完成的 毕竟相对于文字来说语音就不会显的那么的苍白无力 同时最大的好处就是能解放我们的双手吧 能更快实现两者间的对话 沟通便更高效了 Voice Control for Cha
  • GitHub问题汇总

    问题1 fatal unable to access https github com xxxxx LibreSSL SSL read error 02FFF03C system library func 4095 Operation ti
  • react 重定向Redirect

    如果路径是 跳转到 home
  • 浅谈Java虚拟机工作原理

    网上看了很多写JVM工作原理的大神 也看了些视频 各有各的理解 我整合一下组织自己的语言发表一下理解 首先来一段简单的代码示例 public class Test public static void main String args St
  • 2023年“网络安全”赛项江苏省淮安市选拔赛 任务书

    任务书 一 竞赛时间 共计3小时 二 竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段单兵模式系统渗透测试 任务一 服务器内部信息获取 任务二 网站渗透测试 任务三 Linux系统渗透提权 任务四 Web渗透测试 第二阶段分
  • C#时间格式转换问题(12小时制和24小时制)

    string time Convert ToDateTime date ToString yyyy MM dd HH mm 24小时 string time Convert ToDateTime date ToString yyyy MM
  • @FeignClient服务之间调用Get请求传递对象参数

    使用feign进行服务间调用时 Get请求有多个参数的时候如何使用对象传参呢 第一步 引入pom依赖
  • unity中控制主角的移动和旋转

    在游戏中我们通常要控制玩家的移动和旋转 首先我们说一下移动 移动的本质就是在Update 或LateUpdate 中不断修改物体的position来实现移动 移动的方法有4中 1 transform Translate 第一种方法与直接修改
  • 两列表同时排序,排序后对应元素不变(用到zip打包和解包)

    number是数字 lis是要排的序列 def sort number list number lis 利用 解包方式 将一个排序好的元组 通过元组生成器再转成list list sorted list list zip sorted zi
  • 创造自己的专属免费网盘:Nextcloud

    由于百度网盘速度奇慢无比 而且同步文件夹还需要会员什么的 这对于Nextcloud来说简直就是欺负人啊 所以我们通过搭建一个Nextcloud的私有云 来解决这些问题 目录 简介 快捷安装 配置ssl 启用https 报错 意外处理 一 简
  • less动态样式语言(预处理语言)

    一 使用方法 Less是一门CSS 预处理语言 它扩展了 CSS 语言 增加了变量 Mixin 函数等特性 使 CSS 更易维护和扩展 Less 可以运行在 Node 或浏览器端 1 客户端使用 1 下载less 2 编写项目less文件
  • 红米10A 一键root教程 解锁BL 跳过168小时限制 刷面具root救黑砖刷机 解决无法解锁BL 新版本刷机

    新版本 红米10A 解锁BL 无法秒解锁BL root bootloader 要刷机 线刷救砖 获取Root权限都需要解除bootloader锁 我们称解除刷机限制的这个操作就叫解锁BL 只有解锁BL后 才可以进行刷机 刷Root权限等等一
  • Linux多进程:orphan process——孤儿进程

    孤儿进程orphan process 当父进程比子进程先结束 这样的子进程就成为了孤儿进程 每当出现一个孤儿进程 内核会把孤儿进程的父进程设置为init 托管 init进程会循环wait 孤儿进程结束 然后做剩下的善后 回收资源 因此 孤儿