我正在准备第一次 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
.