尝试从标准输入读取的后台模式进程

时间:2015-06-09 20:17:03

标签: shell linux-kernel

在Linux / Unix中,当后台模式中的进程尝试从stdin读取时,它将被终止。导致终止的原因是什么?没有核心文件。所以看起来终止不是通过产生核心的信号来实现的。

1 个答案:

答案 0 :(得分:0)

终止的一个原因可能是信号。

当进程没有直接连接到tty设备时,stdin / stdout通常用管道处理。 pipe(7) man page说:

  

如果所有引用管道读取端的文件描述符都已关闭,那么write(2)将导致为调用进程生成SIGPIPE信号。

但是,这仅适用于写作

阅读,

  

如果所有引用管道写入端的文件描述符都已关闭,那么从管道中尝试read(2)将看到文件结束(read(2)将返回0)。< / p>

当程序无法读取任何内容时,很可能决定终止。 (它还能做什么?)