linux下重启Apache的方法
Linux系统是Ubuntu
1。启动Apache 2服务器/启动Apache服务
# / /初始化等。D / apache2开始
或
$ sudo / /初始化等。D / apache2开始
二,重启Apache 2服务器重启Apache服务
# / /初始化等。D / Apache2重启
或
$ sudo / /初始化等。D / Apache2重启
三,停止Apache 2服务器/停止Apache服务
# / /初始化等。D / Apache2停止
或
$ sudo / /初始化等。D / Apache2停止
linux下的Apache重启和停止
本文档介绍了如何停止并重新启动在类UNIX系统的Apache。Windows NT / 2000 / XP / 2003用户被要求在服务模式运行Apache,和Windows 9x用户/我看到在控制台运行Apache。
简介
为了停止或重新启动Apache,你要运行的httpd进程发送一个信号。有两种方法来发送信号。第一种方法是直接将信号发送到正在运行的进程使用kill命令Unix,你可能会注意到,有很多的服务器运行在您的系统过程。但你不应该发出一个信号,直接对任何人,只要发出一个信号给父进程,已记录自己的PID在pidfile。那就是,你没有发送信号给父进程以外的任何过程。你可以发送三种信号,父进程:术语,hup,usr1,我们会给出一个详细的描述后。
您可以用以下命令向父进程发送信号:
长期`杀死猫/ usr / / /记录当地Apache2 / httpd的PID `。
第二种方法是使用K的命令行选项的httpd二进制可执行文件,将在下面描述:停止,重启,优雅,graceful-stop.however,我们推荐你使用apachectl脚本控制通过这些选项的二进制可执行文件的命令。
当你发送一个信号到服务器,你可以读到这样的过程:
尾F / usr / / /局部/ error_log Apache2的日志
你可以修改这些例子适合你pidfile ServerRoot和设置。
立即停止
信号:术语
apachectl K站
向父进程发送术语或停止信号会导致它立即杀死所有子进程。这将需要一些时间来杀死所有子进程。然后父进程也退出进程。所有正在进行的请求将被强制暂停,并且没有其他请求将被接受。
优雅重启
信号:usr1
apachectl k优美
或优雅的usr1信号允许父进程表明,完成当前请求后子进程的退出(如果他们不提供,他们将立即退出)。父进程重新读取配置文件并重新打开日志文件。每当子死,父进程立即生成一个新的子进程的一个新的配置文件并立即开始一个新的伺服系统的要求。
重启代码设计可以保证MPM过程控制指令,这是正常运行,启动过程中,确保有一个适当的进程和线程的数量来响应客户端的请求。这是startservers这样:如果一个新的startservers子进程不是一秒钟后创造的,它创造了亚足够数量的过程来完成当前的任务。所以,除了保持联系,可以保持服务器上的现有负荷数量,代码也保证startservers工作如你所愿。
用户使用mod_status注意服务器的统计信息不清理后usr1发出信号。编写代码最小化你的服务器无法运行新的请求的时间。这些请求将被操作系统放入队列中,以便它们不会丢失。它们也可以跟踪参数优化。这样做可以在重新生成子进程的过程中保存记分板上所有子进程的状态。
mod_status也将使用一个G标记的子过程开始之前的优雅重启和不结束伺服的要求。
目前,日志滚动脚本不能用usr1确定所有子进程已写入预启动日志已经完成。我们建议您等待在usr1信号发送一个合适的时间,然后处理旧的日志。例如,一个窄带用户,最点击的处理将在10分钟内完成,所以你应该等待处理旧日志15分钟前。
如果Apache时重新启动配置文件被发现是错误的,那么父进程将不会重启,但错误并退出。在优雅重启的情况下,它将保持在这一过程中的子过程存在的情况下它的存在(即訾金成谁是要求退出优雅的后处理他们的请求)。如果你想重新启动服务器,这将导致一些问题:它不会被绑定到它的监听端口。重启之前,你可以使用-t命令行参数检查配置文件语法的正确性(见这里),但这并不能保证可以将服务器重启正确。检查配置文件的语法和语义两方面,你可以使用非root用户启动httpd。如果没有错误,它会尝试打开套接字和日志文件,然后失败因为没有root权限(或由于运行httpd已经绑定到这些端口)。如果是因为这可能是一个配置文件错误等原因,你应该纠正这一错误在优雅重启。重启后立即
HUP信号:
K重启apache
发送HUP或者重新启动信号给父进程可以杀死所有的过程像词信号,不同的是,父进程本身并不存在。它读取配置文件再重新打开日志文件。一系列新的子进程,然后生成继续服务。
用户使用mod_status会发现服务器统计信息将被清除后,该信号被发送出去。
如果您在错误时重新启动配置文件,则父进程将不会重新启动,但会出现错误和退出。请参见前面文章中避免的方法。
信号:绞车
apachectl K优雅停止
绞车或优雅的停止信号使父进程表明,完成当前请求的子进程退出后(如果他们没有服务,他们将立即退出),然后父进程删除pidfile停止监听所有端口。父进程继续运行和监控,处理请求的子进程。一旦所有的子进程完成任务和出口或超过用gracefulshutdowntimeout指示规定的时间,父进程将退出。在超时的情况下,所有的子进程会收到信号并被迫退出期限。
在优雅的状态,长期的信号将立即停止所有父进程和子进程。因为PidFile已被删除,您将无法使用apachectl或服务器发送信号。
优雅停止允许你同时运行同一个配置多个服务器实例。这是一个非常有用的功能,当Apache的平滑升级。然而,它也可能导致死锁,在某些配置的情况下,竞争的条件。
重要的是要确保磁盘文件如锁定文件和scriptsock包含服务器的PID和共存的安全。然而,如果一个配置指令、第三方模块或一个持久的CGI使用任何磁盘或文件锁的状态,这是确保没有运行的httpd实例将争夺文件重要。
你还必须防止潜在的竞争条件,如使用rotatelogs风格管日志。在运行尝试推出相同的日志文件在同一时间多rotatelogs情况下可能造成互相摧毁对方的日志文件。
附录:信号和竞争条件
Apache 1.2b9之前,有很多的重启和死亡信号的竞争条件,一个简单的竞争条件的描述是一个敏感的问题,如果发生了一些不恰当的顺序在适当的时间或不,它会使你不期望的反应;如果同样的事情发生在正确的时间,无异常。与架构,有权的特点,我们要尽量避免。但值得注意的是,仍然有这样一个建筑的一些竞争条件。
对一个物理磁盘损坏scoreboardfile使用记分牌是潜在的危险。这将发生在绑定:使用已经解决(在HUP)或丢失已久的孩子回家!(在usr1)。前者是一个致命的错误,后者导致服务器失去一个记分牌记录。所以我们建议更优雅重启使用,偶尔使用和硬重启。这些问题都很难解决,但幸运的是,大部分的结构不需要记分板文件。如果你需要这样的一个结构,你可以参考的scoreboardfile文件。
当每一个子过程涉及在连续连接的并发请求(HTTP KeepAlive),所有的结构都会有或多或少的竞争状态,它会立即退出后没有阅读任何请求头读取请求,修复1.2.but太晚因为连续连接客户端认为网络延迟和服务器的超时时间因为类似的情况,所以这不是一个大问题。但事实上,它似乎没有任何效果:在一个测试用例,服务器重新启动20次,一秒钟,而客户成功访问了该网站,并没有损坏的图片或空文件。