2009-04-22 40 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。