当我遇到pid冲突时如何重新启动apache2?

Iva*_*ele 29 server apache2

当我尝试重新启动 apache2 时,我收到与本线程中解释的消息相同的消息:

 * Restarting web server apache2 [fail]
 * There are processes named 'apache2' running which do not match your pid file which are left untouched in the name of safety, Please review the situation by hand.
Run Code Online (Sandbox Code Playgroud)

但问题是我在 /var/run/apache2 中没有任何文件。命令 pidof apache2 返回:

1274
Run Code Online (Sandbox Code Playgroud)

我不知道它是否会有所帮助,但这是 apache2.conf 中的行:

PidFile ${APACHE_PID_FILE}
Run Code Online (Sandbox Code Playgroud)

而 envvars 中的一个:

export APACHE_PID_FILE=/var/run/apache2/apache2$SUFFIX.pid
Run Code Online (Sandbox Code Playgroud)

我应该在 /var/run/apache2 中手动创建一个 .pid 文件吗?

非常感谢 !

Iva*_*ele 30

感谢找到答案的@douggro。

使用以下命令查找 Apache2 的进程 ID:

pidof apache2 
Run Code Online (Sandbox Code Playgroud)

杀死进程:

sudo kill -9 <pid>
Run Code Online (Sandbox Code Playgroud)

然后你可以像往常一样启动Apache2:

sudo service apache2 start
Run Code Online (Sandbox Code Playgroud)

更新

如果sudo kill -9 <pid>不起作用,请尝试sudo kill <pid>

  • 您可以[编辑]您的答案以包含详细信息并使其更有用。评论并不意味着存储持久的信息。 (4认同)