ejabberd - Comments for "Подключение новых виртуальных хостов без перезагруски сервера" https://www.ejabberd.im/node/1229 en Если кому нибудь будет интересно: https://www.ejabberd.im/node/1229#comment-2799 <p>Если кому нибудь интересно:<br /> Благодаря legoscia и документации по ErLang я все таки нашел решение данной проблемы. Если кому-нибудь в дальнейшем надо будет решить такую же проблему - вот исходник модуля: </p> <p>vhost.erl:</p> <pre>-module(vhost). -include("ejabberd.hrl"). -export([change_virtual_hosts/0]). change_virtual_hosts() -&gt; OldHosts = ?MYHOSTS, ejabberd_config:start(), NewHosts = ?MYHOSTS, AddedHosts = NewHosts -- OldHosts, RemovedHosts = OldHosts -- NewHosts, %% I might have forgotten some... ejabberd_sm:start_link(), ejabberd_local:start_link(), ejabberd_auth:start(), lists:foreach( fun(Host) -&gt; case ejabberd_config:get_local_option({modules, Host}) of undefined -&gt; ok; Modules -&gt; lists:foreach( fun({Module, _Args}) -&gt; gen_mod:stop_module(Host, Module) end, Modules) end end, RemovedHosts), lists:foreach( fun(Host) -&gt; case ejabberd_config:get_local_option({modules, Host}) of undefined -&gt; ok; Modules -&gt; lists:foreach( fun({Module, Args}) -&gt; gen_mod:start_module(Host, Module, Args) end, Modules) end end, AddedHosts).</pre><p> Компиляем его в консоли Erlang</p> <pre>erl&gt; с(vhost).</pre><p>Полученный vhost.beam кидаем в директорию, где лежат все .beam файлы Ejabber'a </p> <p>Вносим изменения в ejabberd.cfg и опять же в консоли erlang'a пишем:</p> <pre>1&gt;vhost:change_virtual_hosts().</pre><p> Опробовано на версии ejabberd1.1.2</p> Wed, 03 Jan 2007 13:37:43 +0000 cat_crash comment 2799 at https://www.ejabberd.im legoscia, https://www.ejabberd.im/node/1229#comment-2679 <p>legoscia, спасибо!<br /> Готов таки пойти на эксперемент. Думаю рука не дрогнет оставить на Новый Год без премии :) </p> <p>Отпиши пожалуйста поподробней как запустить твой скритп. Беглым взглядом выявил что это не bash скрипт :) А к сожалению мои познания в Erlang стремятся к нулю.</p> Tue, 05 Dec 2006 17:41:14 +0000 cat_crash comment 2679 at https://www.ejabberd.im Простой ответ: это не возможно https://www.ejabberd.im/node/1229#comment-2673 <p>Простой ответ: это не возможно.</p> <p>"Load config from file" не поможет при этой проблемы. Для каждого хоста надо сделать инициализацию, а "load config from file" это не делает.</p> <p>Несколько месяцев назад я написал <noindex><a href="http://article.gmane.org/gmane.network.jabber.ejabberd/1974" rel="nofollow" >маленкий скрипт</a></noindex> для того, а я его никогда не попробовал. Это был бы интересный эксперимент, а кажется, что вам эксперимента не хочется :)</p> Tue, 05 Dec 2006 09:17:23 +0000 legoscia comment 2673 at https://www.ejabberd.im