2009-04-22 37 views
0

我有以下的post-commit鉤子安裝並運行:你可以強制重啓阿帕奇在後提交SVN掛鉤?

#!/bin/bash 
/usr/bin/svn update /var/www/html/dev > /var/www/svnrepo/hooks/post-commit-log 

我開發在Python/Django的,每當我做出任何「py」爲文件進行任何更改,我要SSH方式和「須藤/ sbin目錄/服務的httpd重新啓動」 ... 有沒有辦法把它添加到後提交文件的底部?

一些路障我預見和/或想:

-Fedora核心8

謝謝! -Tom

回答

2

如果Apache進程在端口小於1024上偵聽,那麼就需要root權限才能停止和啓動自身。如果您正在收聽1024以上的端口,那麼你可以啓動它作爲一個非root用戶,然後使用一個post-commit鉤子重新啓動它。

你也想用/etc/init.d/httpd優美而不是重啓不殺死正在做的工作連接,如果曼妙可以在自己的Apache的版本。

最後,post-commit鉤子可以在重新啓動它,讓客戶完全完成之前休眠幾秒鐘後臺啓動另一個子進程。你必須確保鉤子腳本完全脫離stderr。例如,它用作Subversion 1.6.1的post-commit hook,客戶端將從服務器分離,並且睡眠仍然在運行。

#!/bin/sh 
/bin/sleep 60 2>/dev/null & 

如果你能等待現場一分鐘更新,你可以把在用root身份運行運行「SVN更新」,如果有更新,反彈服務器的腳本一個cron。