inetd 和 Xinetd:哪个在运行?

inetd 和 Xinetd:哪个在运行?

我正在准备第一次 LPIC 考试。在一次测验中,我发现了这个问题:

如何判断您的系统是使用 inetd 还是 xinetd 作为超级服务器?

正确的答案应该是:

键入ps ax | grep inetd,并检查输出中是否有 inetd(或 xinetd)的符号。

在我的桌面(Fedora 21)中,这是两种情况的输出:

15844 pts/0    S+     0:00 grep --color=auto inetd

15848 pts/0    S+     0:00 grep --color=auto xinetd

如果有一个正在运行,我该如何判断哪一个正在运行?

答案1

您发现运行该命令的进程

ps ax | grep inetd

是 grep 进程本身,没有 (x)inetd 服务器正在运行

答案2

这些答案是特定于发行版的,但您正在参加有关管理未配置的计算机的测验。您不知道 xinetd 是否被重命名为更像传统的 inetd。查询包数据库可能没有任何好处。最好的办法是了解每个程序,以便您可以区分它们。

我更喜欢使用ldd可执行文件来确定链接到它的库。使用xinetd,您应该会看到到libcrypt和 的链接libnsl,但是您不会发现这两个库链接到传统的inetd.

答案3

几乎可以肯定,xinetd因为常规版本inetd比污垢版本更老,但您可以检查 RPM 数据库:

[root@xxx01 ~]# rpm -qa xinetd
xinetd-2.3.14-39.el6_4.x86_64
[root@xxx01 ~]# rpm -qa inetd
[root@xxx01 ~]#

对于您的命令,您可能只需启动 xinetd 服务即可使命令正常工作(因为看起来没有运行)。

另外,运行命令可能比ps ax | grep <some binary>仅使用更好-C,例如:

[root@xxx01 ~]# ps -C xinetd
  PID TTY          TIME CMD
 1823 ?        00:00:00 xinetd
[root@xxx01 ~]#

这消除了额外的输出,就像您看到的grep那样,如果您只是ps.

相关内容