0

我对 apache 和 php 有疑问。

我在 php 中调用这个脚本:

exec("nohup sudo QUIET=y sh foo.sh > /home/tmp/log.txt 2>&1 & echo $!", $res);

不久之后,脚本 foo.sh 需要重新启动 apache 以包含新的配置文件:

/etc/init.d/apachectl restart

在命令行中,它工作正常,但在我的 php 脚本中,进程在重新启动 apache 的同时被杀死。为什么?我认为 nohup 分离了它的父进程。

(我指出我无法更改 sh 脚本)

任何帮助将不胜感激。

4

4 回答 4

3

You should use /etc/init.d/apachectl reload if the only thing you want is to reread configuration files.

于 2013-04-03T15:06:59.530 回答
1
/etc/init.d/apachectl reload

这不会stop是服务,而是保持它运行并刷新进程配置。

于 2013-04-03T15:12:04.550 回答
0

Use /etc/init.d/apachectl reload instead if you dont want to kill the process.

于 2013-04-03T15:07:14.870 回答
0

由于apache restart发送 SIGTERM,而不是 SIGHUP,您应该从foo.sh

于 2015-12-08T12:31:25.140 回答