2013-08-16 34 views
5

我正在使用YAWS來爲我的遠程應用程序提供服務。當yaws.conf文件發生變化時,我正在重新啓動服務器以使這些更改生效。我不想這樣做,因爲如果服務器停機超過一定時間,我的應用程序可能會崩潰。在運行雅數時加載新的雅思配置文件

那麼有沒有辦法加載新的配置文件與停止服務器,如實時代碼更新?

+0

如果您還需要重新加載您的appmod模塊,您可能會發現以下命令有用:'$ yaws --load your_appmod_module1 your_appmod_module2' – Ning

回答

8

您可以使用下面的命令從交互shell重新加載雅司病配置文件而不需要重新啓動服務器:

yaws --hup --id ID 

其中--id ID部分,如果你運行多個實例雅司病是可選—,它可以讓您可以確定要重新加載哪個特定的Yaws服務器。

+0

當然,「--hup」 - 該選項顯而易見的名稱。 ;-) – RichardC

+0

不完全明顯,我同意。該選項是以SIGHUP命名的,SIGHUP傳統上是用來強制UNIX守護進程重新讀取其配置。如果您運行'yaws --help',也會解釋該選項。 –

+0

哈。這實際上*是一個顯而易見的名字,很明顯我不會猜到它(例如,當看到「run」命令的高低時,結果被稱爲...「run」)。現在我永遠不會忘記這一點。 – zxq9

1

有yaws_api:setconf(GC,SCList),主要用於運行Yaws「embedded」(即,在您自己的管理員之一下,而不是將Yaws作爲單獨的應用程序啓動)。但是當你這樣做時,Yaws仍然會拆除所有現有的端口和連接,以建立新的配置。所以第一個問題是:您是否測量了重新啓動整個Yaws應用程序所需的時間?它可能只比重新加載配置稍微慢一些,在這種情況下,你會讓你的代碼更加複雜,而沒有真正獲得任何東西。