如何从apache服务的网页重启apache?

时间:2010-09-15 20:42:48

标签: scripting web-applications apache2 restart webhooks

我有一个脚本服务器端(shell和python脚本),可以重新启动Apache并进行我需要的其他清理工作。但是,我想公开一个webhook,所以当我的存储库更新时,Apache将重新启动。但是,我目前正在使用Apache重新启动Apache的URL,当脚本停止Apache或终止其进程时,脚本的其余部分将停止执行。

我一直在网上寻找有关如何执行此操作的指南,虽然有一百万个用于重新启动Apache的脚本,但我找不到有关如何设置Apache服务器的指南以便脚本将正确完成执行。

说明我在寻找的内容:

  1. 我提交对我的存储库的更改
  2. 存储库系统调用类似htpp://myserver.com/postwebhook
  3. 的URL
  4. postwebhook URL调用重启apache的服务器上的脚本
  5. postwebhook网址返回200状态
  6. 任何人都有这个工作,可以分享他们如何设置它?

1 个答案:

答案 0 :(得分:1)

当服务器关闭时脚本无法继续(至少不能作为脚本,它可以启动另一个进程,更改其group并且在重启时不会被Apache杀死,但它无法返回结果在任何情况下)。

这是一种解决方法:

  1. 创建一个可以为您提供的脚本 Apache Web的process ID 服务器。从客户端调用它 并记住它。
  2. 调用重新启动的脚本 Apache的。不要指望它会给你 结果因为它不能。最好使用Ajax,隐藏框架或任何其他适当的方法来调用它,以便用户不会看到它。
  3. 等一段时间,然后开始打电话给 为您提供进程ID的脚本 再次。达到超时时间 试图调用该脚本意味着 那个问题和Apache出了什么问题 关机后无法启动。 达到超时试图获得 不同的进程ID意味着服务器 根本没有重新启动。除此以外, 进程ID将不同(不要 期望它更大或更低, 但是,这是非常特定的操作系统)。超时是指一段时间后你停止尝试。即使其中一次尝试超时,您也必须多次尝试调用脚本。
  4. 许多无线路由器在其Web界面中使用了类似的方法。