限制进程在Linux

时间:2019-12-10 12:06:30

标签: c linux process dns fork

在我的进程中,我正在创建一个子进程,并使用execl()API运行二进制文件。在父进程中,调用waitpid()并等待子进程退出。该二进制文件打开“ / etc / resolv.conf” 并尝试连接DNS IP。如果无法访问DNS ip,则子进程将长时间阻塞。由于该父进程超时。我没有二进制的源代码,并且我不想更改/etc/resolve.conf的任何内容,因为此文件被其他进程使用。

有什么办法,我可以删除或限制对子进程的'/etc/resolve.conf'访问。

1 个答案:

答案 0 :(得分:2)

阻止访问<div id='left'> Some text wide enough to compete with the red panel -- some more words needed. </div> <div id='right'> <p>Some names.</p> <p>Some names a little larger.</p> <p>Some names.</p> <p>Some names a little larger.</p> <p>Some names.</p> <p>Some names a little larger.</p> <p>Some names.</p> <p>Some names a little larger.</p> <p>Some names.</p> <p>Some names a little larger.</p> <p>Some names.</p> <p>Some names a little larger.</p> <p>Some names.</p> <p>Some names a little larger.</p> <p>Some names.</p> <p>Some names a little larger.</p> <p>Some names.</p> <p>Some names a little larger.</p> <p>Some names.</p> <p>Some names a little larger.</p> </div>并不容易。但是您可以通过环境变量/etc/resolv.conf告诉解析器为DNS名称解析执行的尝试次数。即使是零尝试也是一个有效值,并且会导致名称解析立即失败。

例如参见

RES_OPTIONS

这意味着,在您的程序中,您可以这样做

RES_OPTIONS="attempts:0" telnet www.google.de
telnet: could not resolve www.google.de/telnet: Temporary failure in name resolution

这应该导致解析立即失败 ,并且您的过程应该继续。