您尚未登录。

#1 2018-06-09 19:02:41

xtricman
喵了个咪
注册时间: 2012-12-26
帖子: 512

谁打开了stdin, stdout, stderr?

我猜想是内核在执行initramfs里的init的时候内核给它打开了,exec systemd的时候进程没主动关掉导致所有进程全继承了三个fd,除非主动关掉才能停止继承到子进程?@依云

离线

#2 2018-06-09 20:45:43

依云
a.k.a. 百合仙子
所在地: 一个等待妹纸出现的地方
注册时间: 2011-08-21
帖子: 4,835
个人网站

Re: 谁打开了stdin, stdout, stderr?

对于终端,是让你登录到终端的程序。详情你可以查阅 APUE 对话期(session)和控制终端相关章节。
对于服务,是 systemd。

离线

#3 2018-06-10 00:20:38

xtricman
喵了个咪
注册时间: 2012-12-26
帖子: 512

Re: 谁打开了stdin, stdout, stderr?

依云 说:

对于终端,是让你登录到终端的程序。详情你可以查阅 APUE 对话期(session)和控制终端相关章节。
对于服务,是 systemd。

所以内核确实不会为进程打开文件描述符对吧,systemd主动打开的。

离线

#4 2018-06-10 00:47:18

依云
a.k.a. 百合仙子
所在地: 一个等待妹纸出现的地方
注册时间: 2011-08-21
帖子: 4,835
个人网站

Re: 谁打开了stdin, stdout, stderr?

xtricman 说:

所以内核确实不会为进程打开文件描述符对吧,systemd主动打开的。

当然的。

离线

页脚