V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
scriptB0y
V2EX  ›  程序员

Linux 进程的生命周期

  •  
  •   scriptB0y ·
    laixintao · 2019-08-03 20:12:31 +08:00 · 3598 次点击
    这是一个创建于 1699 天前的主题,其中的信息可能已经有所发展或是发生改变。

    v2ex 应该是允许贴自己的博客的吧,写完了还是希望有人能看一下...

    www.kawabangga.com/posts/3636

    21 条回复    2019-08-05 11:03:56 +08:00
    scriptB0y
        1
    scriptB0y  
    OP
       2019-08-03 20:14:34 +08:00
    如果有读者对这篇感兴趣的话,之前写的几篇也可以看看:

    - Linux 文件系统 inode 介绍 www.kawabangga.com/posts/3561
    - Kernel space, user space, and syscall www.kawabangga.com/posts/3521

    基本上都是看 Linux system programming 记的笔记。
    yeya24
        2
    yeya24  
       2019-08-03 21:25:12 +08:00   ❤️ 1
    顶,活捉大佬
    Huelse
        3
    Huelse  
       2019-08-03 21:42:09 +08:00   ❤️ 1
    看是会看的,最好能在 v2 的帖子里总结出精华来再给链接
    holdmybeer
        4
    holdmybeer  
       2019-08-03 21:50:10 +08:00 via Android   ❤️ 1
    膜拜大佬,很喜欢看这种偏底层的文章
    关于 inode 介绍的那篇文章似乎有一处笔误:

    “可以存储 1014 * 4K = 4M 数据”

    手机
    holdmybeer
        5
    holdmybeer  
       2019-08-03 21:52:10 +08:00 via Android   ❤️ 1
    没打完发出去了。。

    手机上阅读的,就不贴图了
    scriptB0y
        6
    scriptB0y  
    OP
       2019-08-03 21:57:09 +08:00
    @Huelse 意思是在 V2EX 写一下摘要吗?好的。


    @holdmybeer 多谢!提供的信息已经很多了,很好找到。fixed
    F0nebula
        7
    F0nebula  
       2019-08-03 22:27:08 +08:00   ❤️ 1
    @scriptB0y # 6 没有「写摘要」这个强制规定
    kxiaong
        8
    kxiaong  
       2019-08-03 23:47:31 +08:00   ❤️ 1
    很棒!写的简单通俗易懂。
    scriptB0y
        9
    scriptB0y  
    OP
       2019-08-03 23:55:36 +08:00
    @kxiaong 谢谢,一身冷汗,一直怕自己把简单的问题说的更复杂了。
    polebug
        10
    polebug  
       2019-08-04 00:28:10 +08:00 via Android
    既然是说生命周期 为什么只说了创建和结束 中间的几种状态也说一说会更完整吧
    ( btw 文章中 很多相关内容的细节基本都讲到了 还是赞一个
    polebug
        11
    polebug  
       2019-08-04 00:30:06 +08:00 via Android   ❤️ 1
    @polebug 哦不好意思 原来在下面也提到了 是我没有看清楚
    des
        12
    des  
       2019-08-04 07:28:04 +08:00 via Android   ❤️ 1
    东西写的很棒,在 8 支持
    补充一下,waitpid 写成了 wantpid
    xia0z
        13
    xia0z  
       2019-08-04 07:52:21 +08:00 via iPhone   ❤️ 1
    写得还是很不错的,赞一个。
    顺便放上我的 blog,有兴趣可以交流交流

    4ch12dy.site
    scriptB0y
        14
    scriptB0y  
    OP
       2019-08-04 10:51:14 +08:00   ❤️ 1
    谢谢 fixed
    @des
    wuliaotc
        15
    wuliaotc  
       2019-08-04 13:22:12 +08:00 via Android   ❤️ 1
    找到一个高质量博主,收藏了
    scriptB0y
        16
    scriptB0y  
    OP
       2019-08-04 17:21:30 +08:00
    @wuliaotc 也不行,喝多了也吐😂
    Nitroethane
        17
    Nitroethane  
       2019-08-04 21:00:14 +08:00   ❤️ 1
    fork 之后加载新程序的系统调用是 execve,而不是 execl
    scriptB0y
        18
    scriptB0y  
    OP
       2019-08-04 23:29:45 +08:00
    @Nitroethane

    execlp
    execle
    execv
    execvp
    execve
    execl

    这些函数都是 exec 系统调用函数,这些函数只是传参不同,本质上是一样的。

    fork() 之后执行哪个用用户可以自己选择的,甚至 fork() 之后不执行都没有问题。
    Nitroethane
        19
    Nitroethane  
       2019-08-05 07:23:07 +08:00 via Android   ❤️ 1
    @scriptB0y 最原始的系统调用就是 execve,你去 Linux 看 manual,在 man 2 里的是 execve 而不是 execl
    Chenamy2017
        20
    Chenamy2017  
       2019-08-05 09:48:33 +08:00
    大佬应该是对内核有很深的了解吧
    scriptB0y
        21
    scriptB0y  
    OP
       2019-08-05 11:03:56 +08:00
    @Nitroethane 懂了,我理解有错误。唯一的 syscall 是 execve (man 2),其他的是库函数,多谢。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5446 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 06:43 · PVG 14:43 · LAX 23:43 · JFK 02:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.