如果 apache 服务器尚未运行,如何运行它

sta*_*orn -1 linux apache-http-server cygwin bash shell-script

我想知道是否可以检查apache2是否正在运行。如果它没有运行我想使用 shellscript 执行它

目前我添加了一个名为 run_apache 的函数,该函数只需转到 apache2 启动它的目录即可。我已将此函数添加到我的.bashrc文件中。然而,每次我打开一个新的 shell 时它都会执行,除非 apache2 尚未运行,否则我不想这样做。

slh*_*hck 5

您可以apache2通过启动轻松获取 的状态

/etc/init.d/apache2 status
Run Code Online (Sandbox Code Playgroud)

这将输出以下之一:

Apache2 is NOT running.
Apache2 is running (pid 10281).
Run Code Online (Sandbox Code Playgroud)

它还恰好为您提供了一个有效的返回状态,您可以在 shell 脚本中使用它(并使用 丢弃其正常输出> /dev/null):

if /etc/init.d/apache2 status > /dev/null;
then echo "Apache already running";
else echo "Apache not running";
fi
Run Code Online (Sandbox Code Playgroud)

我应该补充一点,在 Apache 已经运行时尝试启动它并没有什么坏处。所以/etc/init.d/apache2 start只会说:

Starting web server: apache2httpd (pid 10281) already running
Run Code Online (Sandbox Code Playgroud)