我知道我必须计算有多少实例正在运行:
ps x | grep apache2 | wc -l
Run Code Online (Sandbox Code Playgroud)
结果如果它正在运行:2
,否则:1
我也知道有一个叫命令test
,我可以用它来进行验证,但我不知道如何使用test
与wc
大多数 Linux 发行版上的启动脚本通过在启动时保存服务(守护进程)的进程 ID来处理这个问题。
这些 PID 通常存储在/var/run/
. 例如,在我的系统上,Apache2 将其原始或父进程 ID(对预分叉的进程有用)存储在/var/run/apache2.pid
. 因此,您可以向进程发送诸如SIGHUP
或SIGSTOP
之类的信号,以发出配置重新加载或停止服务(守护进程)的信号。
帮助您进行ps ax
样式过程搜索的一个注意事项是使用一个小技巧来转义用于匹配的 grep 的正则表达式模式,使其与自身不匹配。例如ps ax | grep [a]pache2 | wc -l
man test
为您提供test
命令的基础知识。对于 shell 脚本中的简单任务,最好避免依赖于您正在使用的 shell。通常对于基本脚本,/bin/sh
建议针对 Borne Shell ( )编写脚本,因为这往往是最流行的最小公分母。
#!/bin/sh
RC= `ps ax | grep [a]pache2 | wc -l`
if [ $RC -gt 0 ]; then
kill -SIGSTOP `cat /var/run/apache2.pid`
fi
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2719 次 |
最近记录: |