Hi! I used to have ejabberd 0.9.8 running under erlang 0.9something.
New server, so... I install erlang (11.0) and ejabberd (1.1.1.) Host is NetBSD-3.0.1.
I can start ejabberd. It just doesn't DO anything. It doesn't exit, it doesn't write anything to any log files... And it doesn't listen on any ports, not even 5280. Nothing. Ktrace shows that it's running a select on something, and it looks to have called bind, but netstat shows nothing on 5222, 5223, or 5280.
But it also doesn't exit, and doesn't log anything. I am thus completely stumped; I don't even know where to look for additional information about what it thinks it's doing.
Re-compiled, reinstalled, it
Re-compiled, reinstalled, it runs now. No idea what was happening.
Hi. I have the same problem
Hi.
I have the same problem here.
I have 2 machines :
-A, local machine, running FC5
-B, remote server, running RHEL4
I installed ejabberd on A to make some tests before I set it up on B. It worked well. I am no totally sure, but I think I rebooted my machine during tests because of kernel upgrade (not related to ejabberd)
Then I decided to install ejabberd on B. ( erlang R11B-0.3.el4, ejabberd-1.1.2 )
No problem during the installation.
The only thing is that the initscript
start() {
echo -n $"Starting ejabberd: "
daemon --user=ejabberd --check=ejabberd \
"erl" "-pa /usr/lib/ejabberd-1.1.2/ebin \
-sname ejabberd \
-s ejabberd \
-ejabberd config \\\"/etc/ejabberd/ejabberd.cfg\\\" \
log_path \\\"/var/log/ejabberd/ejabberd.log\\\" \
-sasl sasl_error_logger \\{file,\\\"/var/log/ejabberd/sasl.log\\\"\\} \
-mnesia dir \\\"/var/lib/ejabberd/spool\\\" \
-kernel inetrc \\\"/etc/ejabberd/inetrc\\\" \
-detached"
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/ejabberd
echo
return $RETVAL
}
shows ejabberd starts successfully, but the process actually doesn't exists.
Here is the entry in /var/log/messages :
Oct 23 20:09:32 dev02 epmd: epmd: epmd running - daemon = 1
Oct 23 20:09:32 dev02 ejabberd: ejabberd startup succeeded
Unfortunately, nothing is written in /var/log/ejabberd/ejabberd.log (like seebs says, the ejabberd process probably dies before it can log anything).
And of course, nothing is listening on 5222 and other default ejabberd ports.
I think rebooting Q is one of the reason that makes it run (not sure), but I would like to avoid rebooting B (production server).
Thanks
Solved
It seems that daemon, responsible for launching services when using "service name action", makes something weird (I think it does not export env variables, which some of them are needed for erl.
If someone experience the same problem that described above, I suggest using :
start() {
echo -n $"Starting ejabberd: "
export HOME="/var/lib/ejabberd"
daemon \
erl "-pa /usr/lib/ejabberd-1.1.2/ebin \
-sname ejabberd \
-s ejabberd \
-ejabberd \
config \\\"/etc/ejabberd/ejabberd.cfg\\\" \
log_path \\\"/var/log/ejabberd/ejabberd.log\\\" \
-sasl sasl_error_logger \\{file,\\\"/var/log/ejabberd/sasl.log\\\"\\} \
-mnesia dir \\\"/var/lib/ejabberd/spool\\\" \
-kernel inetrc \\\"/etc/ejabberd/inetrc\\\" \
-detached"
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/ejabberd
echo
return $RETVAL
}
And BTW, restart(), which calls start() and stop() fails 1 every 2 times. I have no idea why...
A very quick fix is :
restart() {
stop
# restart() fails if start() follows stop() directly. Bad fix.
sleep 1
start
}
And it's back.
As suggested in another thread, I downgraded to Erlang release 10. Worked fine for a couple of weeks.
Now it's doing this again. No diagnostics, no output of any sort to anything, no ports open. Just NOTHING.
There is obviously something going on that causes this, but I really have no clue where to even begin looking. Presumably, the server has failed before it gets as far as writing a log file. Where should I look for output, given that?
Is there still free space on
Is there still free space on the partition where the log file is stored? Does there runs a beam and/or an epmd process and is the load for it normal?
--
sander