apache状态仅显示一个进程

apache状态仅显示一个进程

运行“sudo serivce httpd status”仅显示单个进程 ID。根进程。但是,如果我使用 top 或 ps,我可以看到有更多进程。Apache 处于预分叉模式。

有人曾经在 Apache2 中见过这种行为吗?

我想了解为什么状态命令找不到其他进程。

答案1

您在 qa 服务器中看到的其他进程是该命令的结果:

pidof httpd

如果您检查 /etc/init.d/functions 中状态函数的代码,您将看到这些结果是如何生成的,并测试为什么您只看到父 httpd 进程。

我认为 sudo 对 pidof 不起作用,请使用 root 用户再试一次。

答案2

这有关系吗?你问的是 apache 是否正在运行。命令告诉你它正在运行。如果你终止该进程,其他进程也会终止。

我怀疑命令可以找到其他人。但它就是懒得这么做。

答案3

Apache 有一个控制进程,负责启动子进程。您从“service httpd status”获取的进程 ID 是控制进程的 PID。

答案4

我得到了相同的结果:

root@serverX:~# sudo service apache2 status
 * Apache is running (pid 2958).

正如其他人所说,这是主进程 ID;任何其他进程都是子进程。如果您需要有关这些信息,您应该安装mod_status它允许 ExtendedStatus 从 Apache 中提取各种简洁的信息。

The details given are:

- The number of worker serving requests
- The number of idle worker
- The status of each worker, the number of requests that worker has performed and the total number of bytes served by the worker (*)
- A total number of accesses and byte count served (*)
- The time the server was started/restarted and the time it has been running for
- Averages giving the number of requests per second, the number of bytes served per second and the average number of bytes per request (*)
- The current percentage CPU used by each worker and in total by Apache (*)
- The current hosts and requests being processed (*)

The lines marked "(*)" are only available if ExtendedStatus is On.

相关内容