188、尽管ps的输出最初是静态的,但可以通过将ps和watch结合使用使其变为动态。我们将监控Apache HTTPD Web服务器的新连接。请输入一个使用watch、ps和grep来查看apache2连接的命令。
watch 'ps aux | grep apache2' 或 watch "ps aux | grep apache2"
189、虽然最初 ps
的输出是静态的,但可以通过结合 ps
和 watch
使其动态化。我们将监控Apache HTTPD Web服务器的新连接。现在打开一个Web浏览器或使用像 lynx
这样的命令行浏览器,通过其IP地址与Web服务器建立连接。你在 watch
的输出中观察到了什么?
其中一个由 www-data
拥有的子进程消失了。
190、启动 Web 服务器。确保你知道父进程的 PID。通过向父进程发送 SIGHUP 信号来重启 Apache HTTPD Web 服务器。检查父进程未被杀死且已生成新的子进程。
启动 Web 服务器:
$ sudo systemctl start apache2
确定父进程 PID:
$ ps aux | grep apache2 # 父进程由 root 用户启动
发送 SIGHUP 信号重启服务器:
$ kill -SIGHUP [父进程 PID]
检查父进程和子进程状态:
$ ps aux | grep apache2
191、在Apache2的配置文件中添加值为1的MaxConnectionsPerChild指令(在Debian及其衍生系统中,该配置文件位于/etc/apache2/apache2.conf;在CentOS系列中,位于/etc/httpd/conf/httpd.conf)。别忘了重启Apache2使更改生效。输入一个使用watch、ps和grep来监控Apache2连接的命令。现在打开一个网页浏览器或使用像lynx这样的命令行浏览器,通过其IP地址建立与Web服务器的连接。在watch的输出中你观察到了什么?
使用的命令为:
$ watch 'ps aux | grep apache2'
或
$ watch "ps aux | grep apache2"
观察到的现象为:一个由 www-data
拥有的子进程消失了。
192、启动 top 命令,使任务按内存使用情况排序。通过高亮显示内存列来验证你输入的命令是否正确。
启动 top 按内存使用排序:$ top -o %MEM;验证命令:按 x
193、使用两个不同的命令来查找由 Apache HTTPD 网络服务器(apache2)派生的所有进程的 PID。
可以使用 pidof apache2
和 pgrep apache2
这两个命令来查找由 Apache HTTPD 网络服务器(apache2)派生的所有进程的 PID。
194、不使用进程 ID,用两条不同的命令终止所有 apache2 进程。
可以使用以下两条命令:$ pkill apache2 或 $ killall apache2
195、假设你需要终止所有 apache2 实例,且没有时间去查找它们的 PID。如何使用 kill 命令结合默认的 SIGTERM 信号以单行命令完成此操作?
可以使用以下命令:
-
kill $(pgrep apache2)
-
kill \
pgrep apache2`` -
kill $(pidof apache2)
-
kill \
pidof apache2``
196、启动top并与之交互,执行以下操作:显示进程的树形视图。
启动top后,按V键可显示进程的树形视图。
197、启动 top 并与之交互,完成以下操作:显示区分用户空间进程和内核空间进程的进程完整路径。
启动 top
后,按 c
键可显示程序的绝对路径并区分用户空间进程和内核空间进程(内核空间进程用方括号表示)。
198、使用 BSD 语法输入 ps 命令来显示由 Apache HTTPD 网络服务器用户(www - data)启动的所有进程。
ps U www-data
199、使用GNU语法输入ps命令来显示由Apache HTTPD Web服务器用户(www - data)启动的所有进程。
ps –user www-data
200、SIGHUP信号可用于重启某些守护进程。以Apache HTTPD Web服务器为例,向父进程(由init启动的进程)发送SIGHUP信号会终止其子进程,之后父进程会重新读取其配置文件、重新打开日志文件并生成一组新的子进程。如何启动Apache HTTPD Web服务器?
使用命令:$ sudo systemctl start apache2
201、SIGHUP信号可用于重启某些守护进程。以Apache HTTPD Web服务器为例,向父进程(由init启动的进程)发送SIGHUP信号会终止其子进程,且父进程会重新读取其配置文件、重新打开日志文件并生成一组新的子进程。那么如何查看Apache HTTPD Web服务器父进程的PID呢?
可以使用命令 $ ps aux | grep apache2
来查看,父进程是由 root 用户启动的进程。