Страница 1 из 1

geronimo2 не может автостартовать

Добавлено: 2008-09-11 20:14:16
iZEN
J2EE-сервер geronimo2 (ports/www/geronimo) не может автостартовать.

В /etc/rc.conf следующие строчки для его автостарта:

Код: Выделить всё

# Apache Geronimo2
geronimo2_enable="YES"
geronimo2_tmpdir="/usr/local/geronimo2/temp"
geronimo2_out="/usr/local/geronimo2/var/log/geronimo.out"
geronimo2_java_home="/usr/local/jdk1.6.0"
geronimo2_stop_timeout="30"
Sun JDK 1.6.0 установлен из порта (ports/java/jdk16):

Код: Выделить всё

% java -version
java version "1.6.0_03-p4"
Java(TM) SE Runtime Environment (build 1.6.0_03-p4-root_18_aug_2008_10_07-b00)
Java HotSpot(TM) 64-Bit Server VM (build 1.6.0_03-p4-root_18_aug_2008_10_07-b00, mixed mode)
Система:

Код: Выделить всё

% uname -rsm
FreeBSD 7.1-PRERELEASE amd64
Когда запускаю из командной строки командой:

Код: Выделить всё

% /usr/local/etc/rc.d/geronimo2 start
Starting geronimo2.
то всё отлично поднимается и работает:

Код: Выделить всё

% sockstat -4 | grep java
www      java       3120  69 tcp4   *:1099                *:*
www      java       3120  70 tcp4   127.0.0.1:63654       127.0.0.1:59757
www      java       3120  76 tcp4   *:9999                *:*
www      java       3120  133tcp4   *:1527                *:*
www      java       3120  175tcp4   *:61616               *:*
www      java       3120  176tcp4   *:61613               *:*
www      java       3120  196tcp4   *:4201                *:*
www      java       3120  215tcp4   *:8080                *:*
www      java       3120  217tcp4   *:8009                *:*
www      java       3120  219tcp4   *:8443                *:*
www      java       3120  344tcp4   *:1050                *:*
www      java       3120  346tcp4   *:65524               *:*
www      java       3120  348tcp4   *:2001                *:*
www      java       3120  350tcp4   *:6882                *:*
www      java       3120  354tcp4   *:*                   *:*
В Web-браузере можно заходить на сраничку сервера и управлять сервером приложений.

В чём может быть проблема с автостартом? (На той же конфигурации автостартовал и отлично работал Apache Tomcat6).

Re: geronimo2 не может автостартовать

Добавлено: 2008-09-11 20:34:43
alex3
покажите пожалуйста

Код: Выделить всё

less /usr/local/etc/rc.d/geronimo2

Re: geronimo2 не может автостартовать

Добавлено: 2008-09-11 21:05:45
iZEN
/usr/local/etc/rc.d/geronimo2:

Код: Выделить всё

#!/bin/sh
#
# $FreeBSD: ports/www/geronimo/files/geronimo2.sh.in,v 1.3 2008/05/22 12:26:08 nemoliu Exp $
#

#
# Configuration settings for geronimo2 in /etc/rc.conf:
#
# geronimo2_enable (bool):
#   Set to "NO" by default.
#   Set it to "YES" to enable geronimo2
#
# geronimo2_flags (str):
#   Set to "" by default.
#   Extra flags passed to start command
#
# geronimo2_home (str)
#   Set to "/usr/local/geronimo2" by default.
#   Set the CATALINA_HOME variable for the Tomcat process
#
# geronimo2_base (str)
#   Set to "/usr/local/geronimo2" by default.
#   Set the CATALINA_BASE variable for the Tomcat process
#
# geronimo2_tmpdir (str)
#   Set to "/usr/local/geronimo2/temp" by default.
#
# geronimo2_out (str)
#   Set to "/usr/local/geronimo2/var/log/geronimo.out" by default.
#   Set the location for the Geronimo process log (standard output & error output)
#
# geronimo2_stop_timeout (num)
#   Set to "10" by default.
#   Sets the timeout in seconds to allow geronimo to shutdown.
#   After the timeout has elapsed, geronimo will be killed.
#
# geronimo2_java_home (str):
# geronimo2_java_vendor (str):
# geronimo2_java_version (str):
# geronimo2_java_os (str):
#   Specify the requirements of the Java VM to use. See javavm(1).
#
# geronimo2_classpath (str):
#   Set to "" by default.
#   Addtional classes to add to the CLASSPATH
#
# geronimo2_java_opts (str):
#   Set to "" by default.
#   Java VM args to use.
#

geronimo2_enable="${geronimo2_enable:-"NO"}"
geronimo2_java_version="${geronimo2_java_version:-"%%JAVA_VERSION%%"}"
geronimo2_user="${geronimo2_user:-"www"}"
geronimo2_home="${geronimo2_home:-"/usr/local/geronimo2"}"
geronimo2_base="${geronimo2_base:-"/usr/local/geronimo2"}"
geronimo2_tmpdir="${geronimo2_tmpdir:-"/tmp"}"
geronimo2_out="${geronimo2_out:-"/usr/local/geronimo2/var/log/geronimo.out"}"
geronimo2_stop_timeout="${geronimo2_stop_timeout:-"10"}"

. /etc/rc.subr

name="geronimo2"
rcvar=`set_rcvar`
pidfile="/var/run/geronimo2.pid"

JAVA_HOME=/usr/local/jdk1.6.0
JRE_HOME=$JAVA_HOME/jre
EXT_DIRS="$JRE_HOME/lib/ext:${geronimo2_home}/lib/ext"
ENDORSED_DIRS="$JRE_HOME/lib/endorsed:${geronimo2_home}/lib/endorsed"

LONG_OPT=
if [ "$1" = "start" ] ; then
  LONG_OPT=--long
fi

load_rc_config "${name}"

if [ -n "${geronimo2_java_home}" ] ; then
	export JAVA_HOME="${geronimo2_java_home}"
fi

if [ -n "${geronimo2_java_version}" ] ; then
	export JAVA_VERSION="${geronimo2_java_version}"
fi

if [ -n "${geronimo2_java_vendor}" ] ; then
	export JAVA_VENDOR="${geronimo2_java_vendor}"
fi

if [ -n "${geronimo2_java_os}" ] ; then
	export JAVA_OS="${geronimo2_java_os}"
fi

java_cmd=
if [ -z "${JAVA_HOME}" ] ; then
	java_cmd=/usr/local/bin/java
else
	java_cmd=${JAVA_HOME}/bin/java
fi

java_command="$java_cmd \
	${geronimo2_java_opts} \
	-Dorg.apache.geronimo.base.dir=${geronimo2_base} \
	-Djava.endorsed.dirs=$ENDORSED_DIRS \
	-Djava.ext.dirs=$EXT_DIRS \
	-Djava.io.tmpdir=${geronimo2_tmpdir}" 

java_start_command="${java_command} \
		 -jar ${geronimo2_home}/bin/server.jar $LONG_OPT" 

java_stop_command="${java_command} \
		 -jar ${geronimo2_home}/bin/shutdown.jar"

log_args=">> ${geronimo2_out} 2>&1"

# Subvert the check_pid_file procname check.
if [ -f $pidfile ]; then
  read rc_pid junk < $pidfile
  if [ ! -z "$rc_pid" ]; then
    procname=`ps -o ucomm= $rc_pid`
  fi
fi

command="/usr/sbin/daemon"
flags="-p ${pidfile} ${java_start_command} ${geronimo2_flags} ${log_args}"

start_precmd=pid_touch
stop_cmd="geronimo2_stop"

pid_touch ()
{
	touch $pidfile
	chown $geronimo2_user $pidfile
}

geronimo2_stop() {
	rc_pid=$(check_pidfile $pidfile *$procname*)

	if [ -z "$rc_pid" ]; then
		[ -n "$rc_fast" ] && return 0
		if [ -n "$pidfile" ]; then
			echo "${name} not running? (check $pidfile)."
		else
			echo "${name} not running?"
		fi
		return 1
	fi
	
	echo "Stopping ${name}."
	kill ${rc_pid} 2> /dev/null
	geronimo_wait_max_for_pid ${geronimo2_stop_timeout} ${rc_pid}
	kill -KILL ${rc_pid} 2> /dev/null && echo "Killed."
	echo -n > ${pidfile}
}

geronimo_wait_max_for_pid() {
	_timeout=$1
	shift
	_pid=$1
	_prefix=
	while [ $_timeout -gt 0 ] ; do
		echo -n ${_prefix:-"Waiting (max $_timeout secs) for PIDS: "}$_pid
		_prefix=", "
		sleep 2
		kill -0 $_pid 2> /dev/null || break
		_timeout=$(($_timeout-2))
	done
	if [ -n "$_prefix" ]; then
		echo "."
	fi
}

run_rc_command "$1"

Re: geronimo2 не может автостартовать

Добавлено: 2008-09-11 21:33:52
alex3
гм. а в /var/log/messages что?

Re: geronimo2 не может автостартовать

Добавлено: 2008-09-11 21:51:20
iZEN
alex3 писал(а):гм. а в /var/log/messages что?
Ничего про стартующие сервисы. Там только по оборудованию сообщения.

Re: geronimo2 не может автостартовать

Добавлено: 2008-09-12 7:09:09
manefesto
# Apache Geronimo2
geronimo2_enable="YES"
geronimo2_tmpdir="/usr/local/geronimo2/temp"
geronimo2_out="/usr/local/geronimo2/var/log/geronimo.out"
geronimo2_java_home="/usr/local/jdk1.6.0"
geronimo2_stop_timeout="30"
Может попробовать просто

Код: Выделить всё

geronimo2_enable="YES"
Или поместить его в конец, вот так
# Apache Geronimo2
geronimo2_tmpdir="/usr/local/geronimo2/temp"
geronimo2_out="/usr/local/geronimo2/var/log/geronimo.out"
geronimo2_java_home="/usr/local/jdk1.6.0"
geronimo2_stop_timeout="30"
geronimo2_enable="YES"

Re: geronimo2 не может автостартовать

Добавлено: 2008-09-12 9:13:34
iZEN
manefesto писал(а):
# Apache Geronimo2
geronimo2_enable="YES"
geronimo2_tmpdir="/usr/local/geronimo2/temp"
geronimo2_out="/usr/local/geronimo2/var/log/geronimo.out"
geronimo2_java_home="/usr/local/jdk1.6.0"
geronimo2_stop_timeout="30"
Может попробовать просто

Код: Выделить всё

geronimo2_enable="YES"
Это тоже ничего не даёт.

Re: geronimo2 не может автостартовать

Добавлено: 2008-09-12 11:11:43
manefesto

Код: Выделить всё

/usr/local/etc/rc.d/geronimo2 rcvar
Такая фишка была с 3proxy
Надо было писать не

Код: Выделить всё

3proxy_enable="YES"
а

Код: Выделить всё

threeproxy_enable="YES"

Re: geronimo2 не может автостартовать

Добавлено: 2008-09-12 12:46:57
zg
# geronimo2_enable (bool):
# Set to "NO" by default.
# Set it to "YES" to enable geronimo2
да нет, всё верно, может быть он зависит от модуля, который не успевается стартовать?

Re: geronimo2 не может автостартовать

Добавлено: 2008-09-12 12:51:22
alex3
он зависит от модуля, который не успевается стартовать?
java?

Re: geronimo2 не может автостартовать

Добавлено: 2008-09-12 13:29:43
manefesto
значит должен ругаться....

Re: geronimo2 не может автостартовать

Добавлено: 2008-09-12 14:51:54
alex3
точно! или в мессейджс или в своем логе он должен что-то вякать...

Re: geronimo2 не может автостартовать

Добавлено: 2008-09-13 13:11:44
iZEN
[quote="manefesto"]

Код: Выделить всё

/usr/local/etc/rc.d/geronimo2 rcvar
Вот:

Код: Выделить всё

> /usr/local/etc/rc.d/geronimo2 rcvar
# geronimo2
geronimo2_enable=YES
В собственных логах Geronomo (каталог /usr/local/geronimo2/var/log/) тоже всё пусто, но они обновляются, когда вручную его запускаешь командой "/usr/local/etc/rc.d/geronimo2 start".

Мне кажется, что система сама прерывает процесс старта сервиса, если он стартует довольно долго. Как можно увеличить время ожидания старта определённого демона, чтобы система его не киляла раньше времени?

Re: geronimo2 не может автостартовать

Добавлено: 2008-09-13 21:49:45
zg
если совсем туго, можешь в rc.local запихать вызов демона, будет тоже самое как руками, только при загрузке

Re: geronimo2 не может автостартовать

Добавлено: 2008-09-14 9:38:02
iZEN
zg писал(а):если совсем туго, можешь в rc.local запихать вызов демона, будет тоже самое как руками, только при загрузке
В каком каталоге rc.local?