apache的启动命令有哪些

在Apache启动shell中执行的命令:1.启动Apache#/usr/local/apache2/bin/apachectlstart或#servicehttpdstart2.安全地重新启动Apache,即所有子进程在收到终止信号后并不立即终止,而是当前任务完成后由End处理。
#/usr/local/apache2/bin/apachectlgraceful3.立即重新启动Apache#/usr/local/apache2/bin/apachectlrestart或#servicehttpdrestart4。
停止Apache#/usr/local/apache2/bin/apachectlstop或#servicehttpdstop。

Linux下重启apache的方法

Linux系统是Ubuntu。

1.启动Apache2Server/启动Apache服务

#/etc/init.d/apache2start

$sudo/etc/init.d/apache2start

2.重新启动Apache2Server/Apache重新启动服务

#/etc/init.d/apache2restart

$sudo/etc/init.d/apache2restart

3.停止Apache2Server/停止Apache服务

#/etc/init.d/apache2stop

$sudo/etc/init.d/apache2stop

Linux环境下重启和停止Apache

本文档描述了如何在类Unix系统上停止和重新启动Apache。
对于WindowsNT/2000/XP/2003用户,请参阅在服务模式下运行Apache。
对于Windows9x/ME用户,请参阅在控制台中运行Apache。

简介

要停止或重新启动Apache,您需要向正在运行的httpd进程发送信号。
有两种方式发送信号。
第一种方法是直接使用UNIXKill命令向正在运行的进程发送信号。
您可能会注意到系统上正在运行大量httpd进程。
但是,您不应该直接发送信号,而只能发送给在PidFile中记录了自己的PID的父进程。
即不需要向父进程以外的进程发送信号。
可以向父进程发送三个信号:TERM、HUP和USR1。
稍后会详细介绍这一点。

您可以使用以下命令向父进程发送信号:

kill-TERM`cat/usr/local/apache2/logs/httpd.pid`

第二种方法是使用下面描述的httpd二进制可执行文件的-k命令行选项(stop、restart、graceful、graceful-stop)。
但是,我们建议您使用apachectl控制脚本将这些选项传递给httpd二进制可执行文件。

向httpd发送信号后,可以这样读取进度:

tail-f/usr/local/apache2/logs/error_log

这些可以修改示例以适合您的ServerRoot和PidFile设置。

立即终止

信号:TERM

apachectl-kstop

向父进程发送TERM或停止信号会导致所有进程您可以立即强制退出。
子进程。
杀死所有子进程需要时间。
然后父进程本身终止。
所有正在进行的请求将被强制中止,并且不会接受进一步的请求。

优雅重启

信号:USR1

apachectl-kgraceful

USR1或优雅信号导致父进程重新启动子进程。
将被通知。
立即退出在您请求后退出(如果不提供服务,立即退出)。
父进程重新读取配置文件并重新打开日志文件。
当子进程终止时,父进程立即使用新的配置文件创建一个新的子进程,并立即开始服务新的请求。

重启代码是MPM旨在保证过程控制指令的正常运行。
也就是说,它确保在重启过程中有足够数量的进程和线程来响应客户端请求。
StartServers是这样的:如果1秒后没有创建新的StartServers子进程,它将创建足够的子进程来完成当前任务。
因此,除了维护能够承受服务器当前负载的子进程数量之外,此代码还确保StartServers按预期运行。

使用mod_status的用户会注意到发送USR1信号后服务器统计信息并没有被清除。
编写代码的目的是最大限度地减少服务器无法处理新请求的时间(这些请求由操作系统排队,以便它们不会丢失)并遵守参数优化。
为此,在重生子进程的过程中,我们将所有子进程的状态保存到记分板。

mod_status还会用“G”标记在正常重启之前启动但未完成其服务请求的子进程。

目前,日志滚动脚本无法使用USR1来判断写入预重启日志的所有子进程是否都已终止。
我们建议在发送USR1信号后等待一段合理的时间,然后再处理旧日志。
例如,如果您是窄带用户,并且大多数点击处理在10分钟内完成,则您可能需要等待15分钟才能处理旧日志。

如果Apache重启时崩溃如果配置文件不正确,父进程不会重启,而是报错并退出。
在正常重启的情况下,子进程(即那些在服务请求后必须“正常结束”的进程)在处理过程中仍然存在。
这会在重新启动服务器时导致一些问题。
服务器将无法再绑定到侦听端口。
在执行重新启动之前,您可以使用-t命令行参数来确保配置文件的语法正确(请参阅httpd)。
但是,这仍然不能保证服务器能够正常重启。
要从语法和语义上查看配置文件,请以非root用户身份启动httpd。
如果没有错误,它会尝试打开套接字和日志文件,但会失败,因为它没有root权限(或者因为当前运行的httpd已经绑定了这些端口)。
如果是由于其他原因,则可能是配置文件中的错误,必须在执行正常重启之前修复。
立即重新启动

信号:HUP

apachectl-krestart

当你向父进程发送HUP或重新启动信号时,父进程重新启动所有进程就像收到一样。
与TERM信号不同,它不会终止父进程本身。
重新读取配置文件并重新打开日志文件。
然后生成一组新的子进程来继续提供服务。

使用mod_status的用户会注意到发送HUP信号后服务器统计信息被清除。

如果重启时配置文件不正确,父进程会报错并退出,而不是重启。
请参阅上文了解如何避免它。
优雅停止

信号:WINCH

apachectl-kgraceful-stop

WINCH或优雅停止信号使父进程告诉子进程完成该过程我们会通知您这样做。
终止当前请求(如果服务没有运行,它将立即终止)。
然后父进程删除PidFile并停止监听所有端口。
父进程继续运行并监视为请求提供服务的子进程。
当所有子进程完成其任务并退出时,或者超过GracefulShutdownTimeout指令中指定的时间时,父进程终止。
当超时发生时,所有子进程都会收到TERM信号并被迫退出。

在“正常”条件下,TERM信号立即终止父进程和所有子进程。
由于PidFile已被删除,因此您无法使用apachectl或httpd发送此信号。

graceful-stop允许您使用相同的配置同时运行多个httpd实例。
这是一个非常有用的功能,可以确保顺利升级到Apache。
然而,在某些配置中也可能发生死锁和竞争条件。

必须注意确保Lockfile和ScriptSock等磁盘文件包含服务器的PID并且可以安全共存。
但是,如果配置指令、第三方模块或持久CGI使用磁盘锁或状态文件,则必须注意避免多个正在运行的httpd实例之间的文件冲突。

您还应该防止潜在的竞争条件,例如使用旋转日志样式的管道日志记录。
如果多个正在运行的rotatelogs实例尝试同时轮换相同的日志文件,它们可能会损坏彼此的日志文件。

附录:信号和竞争条件

在Apache1.2b9之前,存在许多有关重新启动和停止信号的竞争条件。
竞争条件的简单解释是它们是时间敏感的问题。
当某件事在错误的时间或以错误的顺序发生时,当同样的事情在正确的时间发生时,就会发生意想不到的反应。
没有出现异常。
我们试图通过依赖具有“正确”功能集的架构来避免它们。
但是,请注意,此类架构仍然存在一些竞争条件。

在物理磁盘上使用ScoreBoardFile存在损坏ScoreBoard的潜在风险。
这种情况发生在“bind:Addressalreadyinuse”(HUP之后)或“longlostchildcamehome!”(USR1之后)。
前者是致命错误,而后者会导致服务器丢失记分牌记录。
因此,我们建议您多使用平滑重启,偶尔使用硬重启。
解决这些问题很困难,但幸运的是大多数结构不需要记分板。
如果您需要这样的结构,请参阅ScoreBoardFile文档。

如果每个子进程都涉及HTTP持久连接(KeepAlive)上的第二个并发请求,则所有构造都或多或少存在竞争条件。
读取请求后,立即退出,不读取任何请求头。
这个修复对于1.2来说已经太晚了。
但是,对于持续连接的客户端来说,理论上这并不是一个大问题,因为您要考虑导致类似情况的网络延迟和服务器超时。
事实上,似乎没有任何效果。
在一个测试案例中,服务器每秒重新启动20次,客户端能够成功浏览网站,而不会看到任何损坏的图像或空文档。