LINUX.ORG.RU

ejabberd не стартует после установки

 ,


0

1

поиском воспользовался, права проверил, уже и в /etc/init.d/ejabberd заглянул, что и как в скрипте происходит.. все пути, права на папки, все проверил.. в стандартном конфиге поменял только имя хоста. если из консоли запускать просто как ejabberd, то вроде все норм, он и соединение принимает, и пишет в консоль что несуществующий пользователь регнуться хотел и так далее.. пробовал его через nohup запустить, раз через init.d/ejabberd start не хочет, но не получается, не хочет он в процессах висеть. про ejabberdctl и говорить ничего не стоит, он без запущенной ноды не работает. Процессов ирланга я не оставлял, после каждого тестирования удалял их.. все происходит на VPS с Ubuntu 12.04 Server, свежеустановленная, все начиная с установки воспроизводилось из под рута.. Куда копать дальше и что еще можно попробовать?

у меня есть пользователь ejabberd, от него я делаю так

/usr/sbin/ejabberdctl start

Все работает. Можно сделать так

su ejabberd -c /usr/sbin/ejabberdctl start &
Но у меня не получается, не знаю почему.

Дистрибутив у меня слакваре, по этому ничего не гарантирую.

the_green ()
Ответ на: комментарий от the_green

su ejabberd -c '/usr/sbin/ejabberdctl start &'

Или в двойные кавычки.

DALDON ★★★★★ ()
Ответ на: комментарий от DALDON

Почему тогда нормально отрабатывает вот это:

su oziris -c transmission-daemon &
Ума не приложу. Но аптаймы большие, по этому просто не парюсь.

the_green ()
Ответ на: комментарий от the_green

Видимо во втором случае утилита su уходит в беграунд. А параметру -c передаётся одна команда, вот и работает.

DALDON ★★★★★ ()
Ответ на: комментарий от DALDON

А вот почему ejabberd может так стартовать, а apache нужно создавать pid-файл и какой-то сокет и всё это только под рутом?

ados ★★★★★ ()

Ты ставил откуда ejabberd ? Если память мне не изменяет со склерозом, в убунтах есть что-то вроде: /etc/default/ejabberd - и там надо поставить yes, или что-то подобное, но очень могу ошибаться и путать.

DALDON ★★★★★ ()
Ответ на: комментарий от ados

Ну видимо потому что apache требует более низкоуровнего доступа к ОС нежели ejabberd, и по-этому часть инициализации ему требуется под root, а затем он переходит уже под www-data или как там его пользователь обзывается.

DALDON ★★★★★ ()
Ответ на: комментарий от the_green

$ ejabberdctl start Failed RPC connection to the node ejabberd@139198: nodedown

это из под пользователя ejabberd, если запускать через инит скрипт, то пароль просит, а пароль пользователя ejabberd мне не известен

pycode ()
Ответ на: комментарий от DALDON

я ставил из репозиториев.. и в правду есть такой файлик, только прав на исполнение у него нет, и где там yes можно поставить? и откуда /etc/default/ejabberd конфиг считывает? :)

pycode ()
Ответ на: комментарий от pycode

сори, целый день над еджаббером корпею.. этож какой то конфигурационный файл, а не исполняемый.. блин..

pycode ()
Ответ на: комментарий от pycode

Сам в свое время употел, уже не помню, что именно делал. Могу скинуть нужные конфиги. Говори если надо.

the_green ()
Ответ на: комментарий от pycode

Маны читал? man ejabberd ? man ejabberd.conf и тому подобное?

DALDON ★★★★★ ()
Ответ на: комментарий от ados


А вот почему ejabberd может так стартовать, а apache нужно создавать pid-файл и какой-то сокет и всё это только под рутом?


Потому что apache пытается забиндить порт из диапазона 1-1024, а ejabberd - нет.

blackst0ne ★★★★★ ()

А хост, который прописан в конфиге ресолвится вообще?

Difrex ★★★★ ()
Ответ на: комментарий от Difrex

после установки когда там в конфигах еще localhost стоит, и то не запускается печатает 60 пресловутых точек и пишет failed.. Дома на Xubuntu и то запустился, но на домашнем компе инсталил из под пользователя с sudo.. может в этом дело?

pycode ()
Ответ на: комментарий от pycode

Хм, а ты не из репозитория ставил?

Если с сайта из бинарника, то проверь права, что ли на /opt/ejabberd*

Difrex ★★★★ ()
Ответ на: комментарий от Difrex

ставил из репозитория, и с помощью apt-get, потом удалил с параметром purge, поставил через aptitude(по совету на англоязычном ресурсе), дело в том, что командой ejabberd сервер таки запускается и слушает порты, ведет логи подключений, видно онлайн в консоли.. вникал в инит скрипт ejabberd, а именно функцию старт, не все ньюансы понятны, но кажется проблема кроется где то в ejabberdctl, но не уверен.(знаний sh не достаточно, что бы утверждать)..

pycode ()
Ответ на: комментарий от pycode

Хм, а в логи он ничего не пишет когда ты его через инит-скрипт запускаешь?

Попробуй из-под рута сделать и скажи, что пишет.

# chown -R ejabberd:ejabberd /var/lib/ejabberd
# su ejabberd -c "/usr/sbin/ejjaberd -noshell -detached"

Difrex ★★★★ ()
Ответ на: комментарий от Difrex

ejabberd запустился, в папке были всего пару файлов с группой и пользователем root.. но не работает ejabberdctl status, под рутом он выдает что нода не поднята. если запускать из под пользователя ejabberd то следующее:

=ERROR REPORT==== 27-Mar-2013::13:18:15 === File operation error: eacces. Target: .. Function: read_file_info. Process: code_server.

=ERROR REPORT==== 27-Mar-2013::13:18:15 === File operation error: eacces. Target: ./standard_error.beam. Function: get_file. Process: code_server.

=ERROR REPORT==== 27-Mar-2013::13:18:15 === File operation error: eacces. Target: ./supervisor_bridge.beam. Function: get_file. Process: code_server.

=ERROR REPORT==== 27-Mar-2013::13:18:15 === File operation error: eacces. Target: ./user_sup.beam. Function: get_file. Process: code_server.

=ERROR REPORT==== 27-Mar-2013::13:18:15 === File operation error: eacces. Target: ./user.beam. Function: get_file. Process: code_server.

=ERROR REPORT==== 27-Mar-2013::13:18:15 === File operation error: eacces. Target: ./kernel_config.beam. Function: get_file. Process: code_server.

=ERROR REPORT==== 27-Mar-2013::13:18:15 === File operation error: eacces. Target: ./queue.beam. Function: get_file. Process: code_server.

=ERROR REPORT==== 27-Mar-2013::13:18:15 === File operation error: eacces. Target: ./error_logger_tty_h.beam. Function: get_file. Process: code_server.

=ERROR REPORT==== 27-Mar-2013::13:18:15 === File operation error: eacces. Target: ./io_lib.beam. Function: get_file. Process: code_server.

=ERROR REPORT==== 27-Mar-2013::13:18:15 === File operation error: eacces. Target: ./io_lib_format.beam. Function: get_file. Process: code_server.

=ERROR REPORT==== 27-Mar-2013::13:18:15 === File operation error: eacces. Target: ./io_lib_pretty.beam. Function: get_file. Process: code_server.

=ERROR REPORT==== 27-Mar-2013::13:18:15 === File operation error: eacces. Target: ./io.beam. Function: get_file. Process: code_server.

=ERROR REPORT==== 27-Mar-2013::13:18:15 === File operation error: eacces. Target: ./c.beam. Function: get_file. Process: code_server.

=ERROR REPORT==== 27-Mar-2013::13:18:15 === File operation error: eacces. Target: ./erl_eval.beam. Function: get_file. Process: code_server.

=ERROR REPORT==== 27-Mar-2013::13:18:15 === File operation error: eacces. Target: ./orddict.beam. Function: get_file. Process: code_server.

=ERROR REPORT==== 27-Mar-2013::13:18:15 === File operation error: eacces. Target: ./file_io_server.beam. Function: get_file. Process: code_server.

=ERROR REPORT==== 27-Mar-2013::13:18:15 === File operation error: eacces. Target: ./erl_posix_msg.beam. Function: get_file. Process: code_server.

=ERROR REPORT==== 27-Mar-2013::13:18:15 === file:path_eval([".",«/var/lib/ejabberd»],".erlang"): permission denied

=ERROR REPORT==== 27-Mar-2013::13:18:15 === File operation error: eacces. Target: ./string.beam. Function: get_file. Process: code_server.

=ERROR REPORT==== 27-Mar-2013::13:18:15 === File operation error: eacces. Target: ./inet_gethost_native.beam. Function: get_file. Process: code_server.

=ERROR REPORT==== 27-Mar-2013::13:18:15 === File operation error: eacces. Target: ./dist_util.beam. Function: get_file. Process: code_server. Failed RPC connection to the node ejabberd@139198: nodedown

=ERROR REPORT==== 27-Mar-2013::13:18:15 === File operation error: eacces. Target: ./erl_scan.beam. Function: get_file. Process: code_server.

не могу найти этих файлов и посмотреть на их права и кому они пренадлежат

pycode ()
Ответ на: комментарий от pycode

На /var/lib/ejabberd поменяй права на ejabberd:ejabberd(chown -R ejabberd:ejabberd)

Все эти файлы(которые в ERROR REPORT) находятся в /usr/lib/erlang/. Посмотри, чтобы права были 755 на каталоги и 644 на файлы. Ну и принадлежать они должны root

Difrex ★★★★ ()
Ответ на: комментарий от Difrex

папкам права назначил командой chmod -R 755 /usr/lib/erlang на файлы командой find /usr/lib/erlang -type f -exec chmod 644 {} \; после этого выполняю /etc/init.d/ejabberd start из под рута, получаю /usr/sbin/ejabberdctl: 60: exec: /usr/bin/erl: Permission denied, это ссылка на файл который лежит в /usr/lib/erlang по сути должен быть исполняемым, но на нем права то 644.. от безисходности дал всем файлам права 755 посмотреть что будет, опять получаю failed.. вот жесть то а :)

pycode ()
Ответ на: комментарий от pycode

Проще, наверное, будет опять пройтись финдом и сменить права на 644, а потом уже давать нужным +x - их не так много

Difrex ★★★★ ()
Ответ на: комментарий от Difrex

Спасибо, после работы протестирую :) Да и вообще спасибо вам, честно не ожидал такой отзывчивости, пока пользовался поиском, вроде все моменты рассмотрены вдоль и поперек, ан нет.. Может реально стоит попробовать добавить нового пользователя, добавить его в судо файл через висудо, и проинсталлить ejabberd.. дома он при таком раскладе запустился с ходу(Xubuntu правда) :)

pycode ()
Ответ на: комментарий от pycode

дома он при таком раскладе запустился с ходу(Xubuntu правда)

Без разницы(по-идее) ксубунту или убунту - репы одни и теже =)

А не пробовал сделать apt-get purge ejabberd erlang, а потом заново поставить?

Difrex ★★★★ ()
Ответ на: комментарий от Difrex

только что удалил и поставил, и из под другого пользователя с sudo удалил и поставил :) эффект один и тот же, сам запуск ejabberd отрабатывает, т.е. по урлу выскакивает запрос логина пароля, и процессы присутствуют.. но ejabberdctl как я понял не возвращает нужный код статуса, и поэтому не отрабатывает инит скрипт.. без ejabberdctl, Я и пользователя то добавить не могу :) вообщем буду копать, еще досканально разберусь с тем списком файлов что ты мне отправил :)

pycode ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.