PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tomcat abbruch nach Neustart durch Crontab



Zwerg2003
23.10.09, 10:29
Hallo,
ich lasse den Tomcat nachts durch die Crontab neu starten.
Das funktioniert soweit auch alles ganz gut. Ca 5 Miunten nach dem Neustart
durch die Crontab ist der Tomcat nicht mehr aktiv!

der Eintrag steht in der Zeit des Cronjobs mehrfach in der /var/log/messages



... Testserver su: (to tomcat) root on none

marce
23.10.09, 10:34
Dieser Eintrag hat erst mal gar nichts zu sagen -> mehr Infos.

Zwerg2003
23.10.09, 10:57
mehr Infos stehen da nicht drin. die Messages ist bis auf diese Einträge und die normalen Systemmeldungen leer.
Ich habe zwischen dem stoppen und starten eine Pause eingebaut.
Das ist das Log was ich mitschreiben lasse:


Datum 23 Oct 2009
ZEIT 01:00:01
Shutting down Tomcat (/srv/www/tomcat5/base/)..done
ZEIT 01:07:15
Starting Tomcat (/srv/www/tomcat5/base/)..done
ZEIT 01:07:16
Checking for Tomcat (/srv/www/tomcat5/base/)..running
ZEIT 01:12:16
Checking for Tomcat (/srv/www/tomcat5/base/)..unused

marce
23.10.09, 11:00
mit mehr Infos meinte ich auch eher: Cronjob, wie startest und stoppst Du den TomCat, was steht im catalina.out, ...

Zwerg2003
23.10.09, 11:12
Der Job ist wie folgt in die Crontab eingetragen:


00 1 * * * /taeglicheArbeiten/restart_tomcat.sh >>/var/log/tomcat_restart.log 2>&1


das ist das Skript:


# !/bin/bash
DATUM=`date | awk '{print $3 " " $2 " " $6}'`
ZEIT=`date | awk '{print $4}'`
echo "DATUM " $DATUM
echo "ZEIT " $ZEIT
/etc/init.d/tomcat5 stop
sleep 1m
ZEIT=`date | awk '{print $4}'`
echo "ZEIT " $ZEIT
/etc/init.d/tomcat5 start
ZEIT=`date | awk '{print $4}'`
echo "ZEIT " $ZEIT
/etc/init.d/tomcat5 status
sleep 5m
ZEIT=`date | awk '{print $4}'`
echo "ZEIT " $ZEIT
/etc/init.d/tomcat5 status


In der Catalina.out steht zu dieser Zeit gar nix drin

Zwerg2003
23.10.09, 11:14
00 1 * * * /taeglicheArbeiten/restart_tomcat.sh >>/var/log/tomcat_restart.log 2>&1


das ist das Skript:


# !/bin/bash
DATUM=`date | awk '{print $3 " " $2 " " $6}'`
ZEIT=`date | awk '{print $4}'`
echo "DATUM " $DATUM
echo "ZEIT " $ZEIT
/etc/init.d/tomcat5 stop
sleep 1m
ZEIT=`date | awk '{print $4}'`
echo "ZEIT " $ZEIT
/etc/init.d/tomcat5 start
ZEIT=`date | awk '{print $4}'`
echo "ZEIT " $ZEIT
/etc/init.d/tomcat5 status
sleep 5m
ZEIT=`date | awk '{print $4}'`
echo "ZEIT " $ZEIT
/etc/init.d/tomcat5 status


In der Catalina.out steht zu dieser Zeit gar nichts auffälliges drin

marce
23.10.09, 11:17
gar nichts in der catalina.out? Kann ich mir eigentlich nicht vorstellen...

Läuft der Prozess? Sind nach dem stop wirdklich alle Java-Prozesse weg (der TC ist da manchmal ein wenig "zäh"), ...?

Zwerg2003
23.10.09, 11:18
Ich habe neben dem Tomcat noch einen Apache am laufen. Kann es sein das sich die beiden irgendwie ins Gehege kommen? Der Apache startet um 01:07 neu. Kann es sein das der mir den Tomcat Prozess killt?

marce
23.10.09, 11:20
wieso sollte er das tun? -> auch da fehlen Infos (Config, ...)

Zwerg2003
23.10.09, 11:22
da sind die logs absolut sauber und er läuft. Es war ja auch nur so eine Idee.
Das Betriebsystem ist ein SLES10 SP2

Zwerg2003
23.10.09, 11:36
eine Sache hab ich doch in der Catalina.out gefunden die mich ein bissel stutzig macht:



2009-10-23 01:06:14,649 [Thread-34] INFO org.apache.catalina.logger.LoggerBase - unregistering logger Catalina:type=Logger,host=localhost
2009-10-23 01:06:14,649 [Thread-34] INFO org.apache.catalina.logger.LoggerBase - unregistering logger Catalina:type=Logger
2009-10-23 01:06:14,649 [Thread-34] INFO org.apache.coyote.http11.Http11Protocol - Stopping Coyote HTTP/1.1 on http-8080
Due to new licensing guidelines mandated by the Apache Software
Foundation Board of Directors, a JMX implementation can no longer
be distributed with the Apache Tomcat binaries. As a result, you
must download a JMX 1.2 implementation (such as the Sun Reference
Implementation) and copy the JAR containing the API and
implementation of the JMX specification to:
${catalina.home}/bin/jmx.jar


Wenn ich das Skript zum starten für den Tomcat ohne den Cron aufrufe habe ich diesen Eintrag nicht !

marce
23.10.09, 11:39
poste mal die Ausgabe von set / env vom User und von Cron und das init-Script.

Zwerg2003
23.10.09, 12:34
set und env Ausgabe:


ACLOCAL_FLAGS='-I /opt/gnome/share/aclocal'
BASH=/bin/bash
BASH_ARGC=()
BASH_ARGV=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="3" [1]="1" [2]="17" [3]="1" [4]="release" [5]="x86_64-suse-linux")
BASH_VERSION='3.1.17(1)-release'
COLORTERM=gnome-terminal
COLUMNS=131
CPU=x86_64
CSHEDIT=emacs
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-kRNQHSRShz,guid=713fb24a7cd5132f1efb15647b995800
DESKTOP_LAUNCH=gnome-open
DESKTOP_SESSION=gnome
DESKTOP_STARTUP_ID=
DIRSTACK=()
DISPLAY=:0.0
ENV=/etc/bash.bashrc
EUID=0
FROM_HEADER=
GDMSESSION=gnome
GDM_XSERVER_LOCATION=local
GNOME2_PATH=/usr/local:/opt/gnome:/usr
GNOME_ICON_PATH=/usr/share/images:/usr/share/YaST2/theme/current/icons/48x48/apps:/opt/kde3/share/icons/crystalsvg/32x32/apps:/opt/kde3/share/icons/crystalsvg/32x32/devices:/opt/kde3/share/icons/crystalsvg/32x32/mimetypes:/opt/kde3/share/icons/crystalsvg/32x32/filesystems:/opt/kde3/share/icons/crystalsvg/32x32/actions:/opt/kde3/share/icons/crystalsvg/48x48/apps:/opt/kde3/share/icons/crystalsvg/48x48/devices:/opt/kde3/share/icons/crystalsvg/48x48/mimetypes:/opt/kde3/share/icons/crystalsvg/48x48/filesystems:/opt/kde3/share/icons/crystalsvg/48x48/actions:/opt/gnome/share/icons/gnome/48x48/apps:/opt/gnome/share/icons/gnome/32x32/apps:/opt/gnome/share/pixmaps
GNOME_KEYRING_SOCKET=/tmp/keyring-mF6rNw/socket
GPG_AGENT_INFO=/tmp/gpg-geo6Yg/S.gpg-agent:4740:1
GROFF_NO_SGR=yes
GROUPS=()
GTK_PATH=/usr/local/lib/gtk-2.0:/opt/gnome/lib/gtk-2.0:/usr/lib/gtk-2.0
GTK_PATH64=/usr/local/lib64/gtk-2.0:/opt/gnome/lib64/gtk-2.0:/usr/lib64/gtk-2.0
GTK_RC_FILES=/etc/opt/gnome/gtk/gtkrc:/root/.gtkrc-1.2-gnome2
G_BROKEN_FILENAMES=1
HISTCONTROL=ignoreboth
HISTFILE=/root/.bash_history
HISTFILESIZE=1000
HISTSIZE=1000
HOME=/root
HOST=testserver
HOSTFILE=
HOSTNAME=testserver
HOSTTYPE=x86_64
ICEAUTHORITY=/root/.ICEauthority
IFS=$' \t\n'
INFODIR=/usr/local/info:/usr/share/info:/usr/info
INFOPATH=/usr/local/info:/usr/share/info:/usr/info:/opt/gnome/share/info
INPUTRC=/etc/inputrc
JAVA_BINDIR=/usr/lib64/jvm/java/bin
JAVA_HOME=/usr/java/jdk1.5.0_18
JAVA_ROOT=/usr/lib64/jvm/java
JDK_HOME=/usr/lib64/jvm/java
JRE_HOME=/usr/lib64/jvm/java/jre
KDEDIR=/opt/kde3
KDEDIRS=/opt/gnome/share/dist/kde-preconf
LANG=POSIX
LC_CTYPE=de_DE.UTF-8
LESS='-M -I'
LESSCLOSE='lessclose.sh %s %s'
LESSKEY=/etc/lesskey.bin
LESSOPEN='lessopen.sh %s'
LESS_ADVANCED_PREPROCESSOR=no
LINES=38
LOGNAME=root
LS_COLORS='no=00:fi=00:di=01;34:ln=00;36:pi=40;33: so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33 ;01:ex=00;32:*.cmd=00;32:*.exe=01;32:*.com=01;32:* .bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.t bz=00;31:*.tgz=00;31:*.rpm=00;31:*.deb=00;31:*.arj =00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.zoo=0 0;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*. tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.avi=01;35:*.b mp=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;35:*.jpe g=01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.pcx= 01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01 ;35:*.tga=01;35:*.tif=01;35:*.xbm=01;35:*.xpm=01;3 5:*.dl=01;35:*.gl=01;35:*.wmv=01;35:*.aiff=00;32:* .au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.vo c=00;32:*.wav=00;32:'
LS_OPTIONS='-A -N --color=tty -T 0'
MACHTYPE=x86_64-suse-linux
MAIL=/var/spool/mail/root
MAILCHECK=60
MANPATH=/usr/share/man:/usr/local/man:/usr/X11R6/man:/opt/gnome/share/man
MINICOM='-c on'
MODLIST=([0]="add-on" [1]="autofs" [2]="autoyast" [3]="backup" [4]="bootloader" [5]="ca_mgm" [6]="cd-creator" [7]="checkmedia" [8]="common_cert" [9]="controller" [10]="dhcp-server" [11]="dirinstall" [12]="disk" [13]="dns" [14]="dns-server" [15]="dsl" [16]="firewall" [17]="groups" [18]="heartbeat" [19]="host" [20]="http-server" [21]="hwinfo" [22]="idedma" [23]="inetd" [24]="inst_release_notes" [25]="inst_source" [26]="inst_suse_register" [27]="instserver" [28]="irda" [29]="iscsi-client" [30]="iscsi-server" [31]="isdn" [32]="joystick" [33]="kdump" [34]="kerberos-client" [35]="keyboard" [36]="lan" [37]="language" [38]="ldap" [39]="ldap-server" [40]="ldap_browser" [41]="lvm_config" [42]="mail" [43]="modem" [44]="mouse" [45]="nfs" [46]="nfs_server" [47]="nis" [48]="nis_server" [49]="ntp-client" [50]="online_update" [51]="online_update_setup" [52]="power-management" [53]="powertweak" [54]="printer" [55]="profile-manager" [56]="proxy" [57]="remote" [58]="restore" [59]="routing" [60]="runlevel" [61]="samba-client" [62]="samba-server" [63]="security" [64]="slp-server" [65]="sound" [66]="subdomain" [67]="support" [68]="sw_single" [69]="sysconfig" [70]="system_settings" [71]="tftp-server" [72]="timezone" [73]="users" [74]="vendor" [75]="view_anymsg" [76]="wol" [77]="x11" [78]="xen")
MORE=-sl
NNTPSERVER=news
OLDPWD=/taeglicheArbeiten
OPENWINHOME=/usr/openwin
OPTERR=1
OPTIND=1
OSTYPE=linux
PAGER=less
PATH=/bin:/bin:/sbin:/usr/sbin:/usr/local/sbin:/opt/gnome/sbin:/root/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin
PIPESTATUS=([0]="0")
PKG_CONFIG_PATH=/opt/gnome/lib64/pkgconfig:/opt/gnome/share/pkgconfig
PPID=9283
PROFILEREAD=true
PS1='\h:\w # '
PS2='> '
PS4='+ '
PWD=/var/log/tomcat5/base
PYTHONSTARTUP=/etc/pythonstart
QT_SYSTEM_DIR=/usr/share/desktop-data
SDK_HOME=/usr/lib64/jvm/java
SESSION_MANAGER=local/testserver:/tmp/.ICE-unix/4699
SHELL=/bin/bash
SHELLOPTS=braceexpand:emacs:hashall:histexpand:his tory:interactive-comments:monitor
SHLVL=1
SSH_AGENT_PID=4741
SSH_ASKPASS=/usr/lib64/ssh/x11-ssh-askpass
SSH_AUTH_SOCK=/tmp/ssh-cABRq4699/agent.4699
STYLE=Gilouche
TERM=xterm
TEXINPUTS=::/root/.TeX:/usr/share/doc/.TeX:/usr/doc/.TeX:/root/.TeX:/usr/share/doc/.TeX:/usr/doc/.TeX
TMPDIR=/tmp
UID=0
USER=root
USERNAME=root
WINDOWID=37748835
WINDOWMANAGER='/usr/bin/dbus-launch --sh-syntax --exit-with-session /usr/X11R6/bin/gnome'
XAUTHLOCALHOSTNAME=testserver
XAUTHORITY=/root/.Xauthority
XCURSOR_THEME=Industrial
XDG_CONFIG_DIRS=/usr/local/etc/xdg/:/etc/xdg/:/etc/opt/gnome/xdg/
XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/etc/opt/kde3/share/:/opt/kde3/share/:/opt/gnome/share/
XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
XMODIFIERS=@im=local
XNLSPATH=/usr/X11R6/lib/X11/nls
XSESSION_IS_UP=yes
YAST=/sbin/yast
_=env
is=bash
s=/etc/bash_completion.d/yast2-completion.sh
_cd_ ()
{
local c=${COMP_WORDS[COMP_CWORD]};
local s g=0 x C;
local IFS='
';
shopt -q extglob && g=1;
test $g -eq 0 && shopt -s extglob;
case "$(complete -p ${1##*/} 2> /dev/null)" in
mkdir)

;;
*)
s="-S/"
;;
esac;
case "$c" in
\$\(*\))
eval COMPREPLY=\(${c}\)
;;
\$\(*)
COMPREPLY=($(compgen -c -P '$(' -S ')' -- ${c#??}))
;;
\`*\`)
eval COMPREPLY=\(${c}\)
;;
\`*)
COMPREPLY=($(compgen -c -P '\`' -S '\`' -- ${c#?}))
;;
\$\{*\})
eval COMPREPLY=\(${c}\)
;;
\$\{*)
COMPREPLY=($(compgen -v -P '${' -S '}' -- ${c#??}))
;;
\$*)
COMPREPLY=($(compgen -v -P '$' $s -- ${c#?}))
;;
\~*/*)
COMPREPLY=($(compgen -d $s -- "${c}"))
;;
\~*)
COMPREPLY=($(compgen -u $s -- "${c}"))
;;
esac;
for x in ${COMPREPLY[@]};
do
x=${x// /\\ };
x=${x//(/\\(};
x=${x//)/\\)};
x=${x//\{/\\\{};
x=${x//\}/\\\}};
x=${x//\[/\\\[};
x=${x//\]/\\\]};
C=(${C[@]} $x);
done;
COMPREPLY=(${C[@]});
test $g -eq 0 && shopt -u extglob
}
_exp_ ()
{
local c=${COMP_WORDS[COMP_CWORD]};
local a="${COMP_LINE}";
local e s g=0 cd dc t="";
local IFS;
shopt -q extglob && g=1;
test $g -eq 0 && shopt -s extglob;
cd='*-?(c)d*';
dc='*-d?(c)*';
case "${1##*/}" in
compress)
e='*.Z'
;;
bzip2)
case "$c" in
-)
COMPREPLY=(d c);
test $g -eq 0 && shopt -u extglob;
return
;;
-? | -??)
COMPREPLY=($c);
test $g -eq 0 && shopt -u extglob;
return
;;
esac;
case "$a" in
$cd | $dc)
e='!*.bz2'
;;
*)
e='*.bz2'
;;
esac
;;
bunzip2)
e='!*.bz2'
;;
gzip)
case "$c" in
-)
COMPREPLY=(d c);
test $g -eq 0 && shopt -u extglob;
return
;;
-? | -??)
COMPREPLY=($c);
test $g -eq 0 && shopt -u extglob;
return
;;
esac;
case "$a" in
$cd | $dc)
e='!*.+(gz|tgz|z|Z)'
;;
*)
e='*.+(gz|tgz|z|Z)'
;;
esac
;;
gunzip)
e='!*.+(gz|tgz|z|Z)'
;;
uncompress)
e='!*.Z'
;;
unzip)
e='!*.+(???)';
t="@(MS-DOS executable|Zip archive)*"
;;
gs | ghostview)
e='!*.+(eps|EPS|ps|PS|pdf|PDF)'
;;
gv | kghostview)
e='!*.+(eps|EPS|ps|PS|ps.gz|pdf|PDF)'
;;
acroread | [xk]pdf)
e='!*.+(pdf|PDF)'
;;
dvips)
e='!*.+(dvi|DVI)'
;;
[xk]dvi)
e='!*.+(dvi|dvi.gz|DVI|DVI.gz)'
;;
tex | latex | pdflatex)
e='!*.+(tex|TEX|texi|latex)'
;;
export)
case "$a" in
*=*)
c=${c#*=}
;;
*)
COMPREPLY=($(compgen -v -- ${c}));
test $g -eq 0 && shopt -u extglob;
return
;;
esac
;;
*)
e='!*'
;;
esac;
case "$(complete -p ${1##*/} 2> /dev/null)" in
*-d*)

;;
*)
s="-S/"
;;
esac;
IFS='
';
case "$c" in
\$\(*\))
eval COMPREPLY=\(${c}\)
;;
\$\(*)
COMPREPLY=($(compgen -c -P '$(' -S ')' -- ${c#??}))
;;
\`*\`)
eval COMPREPLY=\(${c}\)
;;
\`*)
COMPREPLY=($(compgen -c -P '\`' -S '\`' -- ${c#?}))
;;
\$\{*\})
eval COMPREPLY=\(${c}\)
;;
\$\{*)
COMPREPLY=($(compgen -v -P '${' -S '}' -- ${c#??}))
;;
\$*)
COMPREPLY=($(compgen -v -P '$' -- ${c#?}))
;;
\~*/*)
COMPREPLY=($(compgen -f -X "$e" -- ${c}))
;;
\~*)
COMPREPLY=($(compgen -u ${s} -- ${c}))
;;
*@*)
COMPREPLY=($(compgen -A hostname -P '@' -S ':' -- ${c#*@}))
;;
*[*?[]*)
COMPREPLY=($(compgen -G "${c}"))
;;
*[?*+\!@]\(*\)*)
if test $g -eq 0; then
COMPREPLY=($(compgen -f -X "$e" -- $c));
test $g -eq 0 && shopt -u extglob;
return;
fi;
COMPREPLY=($(compgen -G "${c}"))
;;
*)
if test "$c" = ".."; then
COMPREPLY=($(compgen -d -X "$e" -S / ${_nosp} -- $c));
else
for s in $(compgen -f -X "$e" -- $c);
do
if test -d $s; then
COMPREPLY=(${COMPREPLY[@]} $(compgen -f -X "$e" -S / -- $s));
else
if test -z "$t"; then
COMPREPLY=(${COMPREPLY[@]} $s);
else
case "$(file -b $s 2> /dev/null)" in
$t)
COMPREPLY=(${COMPREPLY[@]} $s)
;;
esac;
fi;
fi;
done;
fi
;;
esac;
test $g -eq 0 && shopt -u extglob
}
_man_ ()
{
local c=${COMP_WORDS[COMP_CWORD]};
local o=${COMP_WORDS[COMP_CWORD-1]};
local os="- f k P S t l";
local ol="whatis apropos pager sections troff local-file";
local m s;
if test -n "$MANPATH"; then
m=${MANPATH//:/\/man,};
else
m="/usr/X11R6/man/man,/usr/openwin/man/man,/usr/share/man/man";
fi;
case "$c" in
-)
COMPREPLY=($os)
;;
--)
COMPREPLY=($ol)
;;
-?)
COMPREPLY=($c)
;;
[0-9n] | [0-9n]p)
COMPREPLY=($c)
;;
*)
case "$o" in
-l | --local-file)
COMPREPLY=($(compgen -f -d -X '.*' -- $c))
;;
[0-9n] | [0-9n]p)
s=$(eval echo {${m}}$o/);
if type -p sed >&/dev/null; then
COMPREPLY=($(ls -1fUA $s 2>/dev/null| sed -n "/^$c/{s@\.[0-9n].*\.gz@@g;s@.*/:@@g;p;}"));
else
s=($(ls -1fUA $s 2>/dev/null));
s=(${s[@]%%.[0-9n]*});
s=(${s[@]#*/:});
for m in ${s[@]};
do
case "$m" in
$c*)
COMPREPLY=(${COMPREPLY[@]} $m)
;;
esac;
done;
unset m s;
COMPREPLY=(${COMPREPLY[@]%%.[0-9n]*});
COMPREPLY=(${COMPREPLY[@]#*/:});
fi
;;
*)
COMPREPLY=($(compgen -c -- $c))
;;
esac
;;
esac
}
_yast2 ()
{
local cur prevprev prev len idx mod MODOPTS line opt rest;
MODOPTS=();
if [[ ${#COMP_WORDS[@]} -gt 4 ]]; then
return 0;
fi;
cur=${COMP_WORDS[COMP_CWORD]};
prev=${COMP_WORDS[COMP_CWORD-1]};
if [[ ${#COMP_WORDS[@]} -ge 3 ]]; then
prevprev=${COMP_WORDS[COMP_CWORD-2]};
fi;
if [[ $cur == '-' ]]; then
COMPREPLY=(-h -l -g -s);
return 0;
fi;
for mod in ${MODLIST[@]};
do
if [[ -n $prevprev && $prevprev == $mod ]]; then
while read line; do
case "$line" in
Options:*)
while read opt rest; do
case "$opt" in
"")
break 2
;;
*)
MODOPTS=("${MODOPTS[@]}" "$opt")
;;
esac;
done
;;
esac;
done <<(LC_ALL=C $YAST $mod $prev help 2>&1);
len=${#cur};
idx=0;
for pval in ${MODOPTS[@]};
do
if [[ "$cur" == "${pval:0:$len}" ]]; then
COMPREPLY[$idx]=$pval;
idx=$[$idx+1];
fi;
done;
return 0;
fi;
if [[ $prev == $mod ]]; then
while read line; do
case "$line" in
Basic\ Syntax:*)
while read rest rest opt rest; do
case "$opt" in
\<*\>)

;;
"")
break
;;
*)
MODOPTS=("${MODOPTS[@]}" "$opt")
;;
esac;
done
;;
Commands:*)
while read opt rest; do
case "$opt" in
"")
break 2
;;
*)
MODOPTS=("${MODOPTS[@]}" "$opt")
;;
esac;
done
;;
esac;
done <<(LC_ALL=C $YAST $mod help 2>&1);
len=${#cur};
idx=0;
for pval in ${MODOPTS[@]};
do
if [[ "$cur" == "${pval:0:$len}" ]]; then
COMPREPLY[$idx]=$pval;
idx=$[$idx+1];
fi;
done;
return 0;
fi;
done;
len=${#cur};
idx=0;
for pval in ${MODLIST[@]};
do
if [[ "$cur" == "${pval:0:$len}" ]]; then
COMPREPLY[$idx]=$pval;
idx=$[$idx+1];
fi;
done;
return 0
}
ppwd ()
{
local _t="$1" _w _x _u="$USER" _h="$HOST";
test -n "$_t" || return;
test "${_t#tty}" = $_t && _t=pts/$_t;
test -O /dev/$_t || return;
_w="$(dirs +0)";
_x=$((${#_w}-18));
test ${#_w} -le 18 || _w="...${_w#$(printf "%.*s" $_x "$_w")}";
printf "\e]2;%s@%s:%s\007\e]1;%s\007" "$_u" "$_h" "$_w" "$_h" >/dev/$_t
}
remount ()
{
/bin/mount -o remount,${1+"$@"}
}
spwd ()
{
( IFS=/;
set $PWD;
if test $# -le 3; then
echo "$PWD";
else
eval echo \"..\${$(($#-1))}/\${$#}\";
fi )
}
startx ()
{
test -x /usr/X11R6/bin/startx || {
echo "No startx installed" 1>&2;
return 1
};
/usr/X11R6/bin/startx ${1+"$@"} 2>&1 | tee $HOME/.X.err
}
LESSKEY=/etc/lesskey.bin
NNTPSERVER=news
INFODIR=/usr/local/info:/usr/share/info:/usr/info
MANPATH=/usr/share/man:/usr/local/man:/usr/X11R6/man:/opt/gnome/share/man
SSH_AGENT_PID=4741
HOSTNAME=testserver
GNOME2_PATH=/usr/local:/opt/gnome:/usr
XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
GPG_AGENT_INFO=/tmp/gpg-geo6Yg/S.gpg-agent:4740:1
DESKTOP_STARTUP_ID=
HOST=testserver
SHELL=/bin/bash
TERM=xterm
PROFILEREAD=true
HISTSIZE=1000
STYLE=Gilouche
TMPDIR=/tmp
GTK_RC_FILES=/etc/opt/gnome/gtk/gtkrc:/root/.gtkrc-1.2-gnome2
WINDOWID=37748835
MORE=-sl
XSESSION_IS_UP=yes
GROFF_NO_SGR=yes
JRE_HOME=/usr/lib64/jvm/java/jre
USER=root
DESKTOP_LAUNCH=gnome-open
LS_COLORS=no=00:fi=00:di=01;34:ln=00;36:pi=40;33:s o=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33; 01:ex=00;32:*.cmd=00;32:*.exe=01;32:*.com=01;32:*. bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tb z=00;31:*.tgz=00;31:*.rpm=00;31:*.deb=00;31:*.arj= 00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.zoo=00 ;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.t b2=00;31:*.tz2=00;31:*.tbz2=00;31:*.avi=01;35:*.bm p=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;35:*.jpeg =01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.pcx=0 1;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01; 35:*.tga=01;35:*.tif=01;35:*.xbm=01;35:*.xpm=01;35 :*.dl=01;35:*.gl=01;35:*.wmv=01;35:*.aiff=00;32:*. au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.voc =00;32:*.wav=00;32:
GNOME_ICON_PATH=/usr/share/images:/usr/share/YaST2/theme/current/icons/48x48/apps:/opt/kde3/share/icons/crystalsvg/32x32/apps:/opt/kde3/share/icons/crystalsvg/32x32/devices:/opt/kde3/share/icons/crystalsvg/32x32/mimetypes:/opt/kde3/share/icons/crystalsvg/32x32/filesystems:/opt/kde3/share/icons/crystalsvg/32x32/actions:/opt/kde3/share/icons/crystalsvg/48x48/apps:/opt/kde3/share/icons/crystalsvg/48x48/devices:/opt/kde3/share/icons/crystalsvg/48x48/mimetypes:/opt/kde3/share/icons/crystalsvg/48x48/filesystems:/opt/kde3/share/icons/crystalsvg/48x48/actions:/opt/gnome/share/icons/gnome/48x48/apps:/opt/gnome/share/icons/gnome/32x32/apps:/opt/gnome/share/pixmaps
OPENWINHOME=/usr/openwin
XNLSPATH=/usr/X11R6/lib/X11/nls
ENV=/etc/bash.bashrc
GNOME_KEYRING_SOCKET=/tmp/keyring-mF6rNw/socket
SSH_AUTH_SOCK=/tmp/ssh-cABRq4699/agent.4699
HOSTTYPE=x86_64
KDEDIR=/opt/kde3
FROM_HEADER=
USERNAME=root
SESSION_MANAGER=local/testserver:/tmp/.ICE-unix/4699
PAGER=less
CSHEDIT=emacs
XDG_CONFIG_DIRS=/usr/local/etc/xdg/:/etc/xdg/:/etc/opt/gnome/xdg/
MINICOM=-c on
MAIL=/var/spool/mail/root
PATH=/bin:/bin:/sbin:/usr/sbin:/usr/local/sbin:/opt/gnome/sbin:/root/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin
DESKTOP_SESSION=gnome
CPU=x86_64
JAVA_BINDIR=/usr/lib64/jvm/java/bin
GDM_XSERVER_LOCATION=local
INPUTRC=/etc/inputrc
PWD=/var/log/tomcat5/base
JAVA_HOME=/usr/java/jdk1.5.0_18
XMODIFIERS=@im=local
LANG=POSIX
PYTHONSTARTUP=/etc/pythonstart
SDK_HOME=/usr/lib64/jvm/java
KDEDIRS=/opt/gnome/share/dist/kde-preconf
GDMSESSION=gnome
SSH_ASKPASS=/usr/lib64/ssh/x11-ssh-askpass
ICEAUTHORITY=/root/.ICEauthority
TEXINPUTS=::/root/.TeX:/usr/share/doc/.TeX:/usr/doc/.TeX:/root/.TeX:/usr/share/doc/.TeX:/usr/doc/.TeX
QT_SYSTEM_DIR=/usr/share/desktop-data
JDK_HOME=/usr/lib64/jvm/java
SHLVL=1
HOME=/root
LESS_ADVANCED_PREPROCESSOR=no
OSTYPE=linux
LS_OPTIONS=-A -N --color=tty -T 0
XCURSOR_THEME=Industrial
WINDOWMANAGER=/usr/bin/dbus-launch --sh-syntax --exit-with-session /usr/X11R6/bin/gnome
GTK_PATH=/usr/local/lib/gtk-2.0:/opt/gnome/lib/gtk-2.0:/usr/lib/gtk-2.0
LESS=-M -I
MACHTYPE=x86_64-suse-linux
LOGNAME=root
GTK_PATH64=/usr/local/lib64/gtk-2.0:/opt/gnome/lib64/gtk-2.0:/usr/lib64/gtk-2.0
LC_CTYPE=de_DE.UTF-8
XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/etc/opt/kde3/share/:/opt/kde3/share/:/opt/gnome/share/
ACLOCAL_FLAGS=-I /opt/gnome/share/aclocal
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-kRNQHSRShz,guid=713fb24a7cd5132f1efb15647b995800
PKG_CONFIG_PATH=/opt/gnome/lib64/pkgconfig:/opt/gnome/share/pkgconfig
LESSOPEN=lessopen.sh %s
INFOPATH=/usr/local/info:/usr/share/info:/usr/info:/opt/gnome/share/info
DISPLAY=:0.0
XAUTHLOCALHOSTNAME=testserver
LESSCLOSE=lessclose.sh %s %s
G_BROKEN_FILENAMES=1
JAVA_ROOT=/usr/lib64/jvm/java
COLORTERM=gnome-terminal
XAUTHORITY=/root/.Xauthority
_=/usr/bin/env
OLDPWD=/taeglicheArbeiten



init Skript tomcat


#! /bin/sh
# Copyright (c) 1995-2001 SuSE GmbH Nuernberg, Germany.
# Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany.
#
# Author: Petr Mladek <feedback@suse.de>
#
# /etc/init.d/tomcat5
#
# and its symbolic link
#
# /usr/sbin/rctomcat5
#
# System startup script for the Tomcat servlet container
#
### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $local_fs $remote_fs
# X-UnitedLinux-Should-Start: $named $syslog $time
# Required-Stop: $local_fs $remote_fs
# X-UnitedLinux-Should-Stop: $named $syslog $time
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: Tomcat Servlet Container
# Description: Start Tomcat to allow JAVA server pages
### END INIT INFO

tomcatIsRunning()
{
tomcat_ps_log=`mktemp /var/tmp/tomcat-ps.log.XXXXXX`
ps aux --cols 1024 >"$tomcat_ps_log"
tomcat_is_running="false"
if grep " -Dcatalina.base=$CATALINA_BASE.*-Dcatalina.home=$CATALINA_HOME.*org.apache.catalina .startup.Bootstrap" "$tomcat_ps_log" >/dev/null 2>/dev/null ; then
tomcat_is_running="true"
fi
rm -f "$tomcat_ps_log"
test "$tomcat_is_running" = "true"
}

# Check for missing binaries and configuration
# Note: Special treatment of stop for LSB conformance
TOMCAT_CONFIG=/etc/sysconfig/j2ee
test -r "$TOMCAT_CONFIG" || { echo "$TOMCAT_CONFIG not existing";
if [ "$1" = "stop" ]; then exit 0;
else exit 6; fi; }

#save JAVA_HOME before it gets overwritten
OLD_JAVA_HOME=$JAVA_HOME
OLD_JAVA_OPTS=$JAVA_OPTS

# Read config
. "$TOMCAT_CONFIG"

# test whether JAVA_HOME and JAVA_OPTS were overwritten ... if empty now, reset to old values
test -n "$JAVA_HOME" || JAVA_HOME=$OLD_JAVA_HOME
test -n "$JAVA_OPTS" || JAVA_OPTS=$OLD_JAVA_OPTS

#CATALINA_HOME="$CATALINA_HOME_4"
#CATALINA_BASE="$CATALINA_BASE_4"
# defaults CATALINA_BASE to CATALINA_HOME
test -n "$CATALINA_BASE" || CATALINA_BASE="$CATALINA_HOME"

test -x "$CATALINA_HOME/bin/startup.sh" || { echo "$CATALINA_HOME/bin/startup.sh not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }
test -x "$CATALINA_HOME/bin/shutdown.sh" || { echo "$CATALINA_HOME/bin/shutdown.sh not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }

# is the BASE valid?
test -d "$CATALINA_BASE/webapps" || test -L "$CATALINA_BASE/webapps" || { echo "$CATALINA_BASE/webapps not existing";
if [ "$1" = "stop" ]; then exit 0;
else exit 6; fi; }

# valid user and group?
test -n "$TOMCAT_BASE_USER" || TOMCAT_BASE_USER="tomcat"
test -n "$TOMCAT_BASE_GROUP" || TOMCAT_BASE_GROUP="tomcat"

# pid set?
test -n "$CATALINA_PID" || CATALINA_PID="/var/run/tomcat5.pid"

# the following variables affects the server
export CATALINA_HOME CATALINA_BASE CATALINA_OPTS CATALINA_TMPDIR JAVA_HOME JAVA_OPTS JPDA_TRANSPORT JPDA_ADDRESS JSSE_HOME CATALINA_PID TOMCAT_BASE_USER TOMCAT_BASE_GROUP


# Shell functions sourced from /etc/rc.status:
# rc_check check and set local and overall rc status
# rc_status check and set local and overall rc status
# rc_status -v ditto but be verbose in local rc status
# rc_status -v -r ditto and clear the local rc status
# rc_failed set local and overall rc status to failed
# rc_failed <num> set local and overall rc status to <num><num>
# rc_reset clear local rc status (overall remains)
# rc_exit exit appropriate to overall rc status
. /etc/rc.status

# First reset status of this service
rc_reset

# Return values acc. to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - insufficient privilege
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running
#
# Note that starting an already running service, stopping
# or restarting a not-running service as well as the restart
# with force-reload (in case signalling is not supported) are
# considered a success.

case "$1" in
start)
echo -n "Starting Tomcat ($CATALINA_BASE)"
## Start daemon with startproc(8). If this fails
## the echo return value is set appropriate.

# NOTE: startproc return 0, even if service is
# already running to match LSB spec.
if tomcatIsRunning ; then
rc_failed 0
else
# try to fix permissions
chown --dereference $TOMCAT_BASE_USER:$TOMCAT_BASE_GROUP "$CATALINA_BASE"
for dir in "$CATALINA_BASE/conf" \
"$CATALINA_BASE/logs" \
"$CATALINA_BASE/temp" \
"$CATALINA_BASE/server" \
"$CATALINA_BASE/webapps" \
"$CATALINA_BASE/work" ; do
# the command true is used because of for example conf directory may be mounted read-only
test -d "$dir" && chown -R -L --dereference $TOMCAT_BASE_USER:$TOMCAT_BASE_GROUP "$dir" 2>/dev/null || true
done
touch $CATALINA_PID
chown $TOMCAT_BASE_USER:$TOMCAT_BASE_GROUP $CATALINA_PID
su $TOMCAT_BASE_USER -s /bin/bash -c "$CATALINA_HOME/bin/startup.sh" >"$CATALINA_BASE/logs//start.log" 2>&1
sleep 1
if tomcatIsRunning ; then
rc_failed 0
else
rc_failed 7
fi
fi
rc_status -v
;;
stop)
echo -n "Shutting down Tomcat ($CATALINA_BASE)"
## Stop daemon with killproc(8) and if this fails
## set echo the echo return value.
if tomcatIsRunning ; then
# wait 60 sec for stop at maximum
wait_sec=60
while [ "$wait_sec" != "0" ] ; do
su $TOMCAT_BASE_USER -s /bin/bash -c "$CATALINA_HOME/bin/shutdown.sh" >"$CATALINA_BASE/logs/stop.log" 2>&1
sleep 1
if ! tomcatIsRunning ; then
# theTomcat server is stoped, end the loop
wait_sec=0
break
fi
wait_sec=$((wait_sec -1))
done
# if tomcat is _still_ running, try it with kill:
if tomcatIsRunning
then
kill `cat $CATALINA_PID`
# wait 60 sec for stop at maximum
wait_sec=60
while [ "$wait_sec" != "0" ] ; do
sleep 1
if ! tomcatIsRunning ; then
# theTomcat server is stoped, end the loop
wait_sec=0
break
fi
wait_sec=$((wait_sec -1))
done
fi
# if tomcat is __still__ running, try it with kill -9
if tomcatIsRunning
then
kill -9 `cat $CATALINA_PID`
# wait 60 sec for stop at maximum
wait_sec=60
while [ "$wait_sec" != "0" ] ; do
sleep 1
if ! tomcatIsRunning ; then
# theTomcat server is stoped, end the loop
wait_sec=0
break
fi
wait_sec=$((wait_sec -1))
done
fi
# check the final status
if tomcatIsRunning ; then
rc_failed 1
else
rc_failed 0
fi
else
rc_failed 0
fi
# Remember status and be verbose
rc_status -v
;;
try-restart)
## Stop the service and if this succeeds (i.e. the
## service was running before), start it again.
## Note: try-restart is not (yet) part of LSB (as of 0.7.5)
$0 status >/dev/null && $0 restart

# Remember status and be quiet
rc_status
;;
restart)
## Stop the service and regardless of whether it was
## running or not, start it again.
$0 stop
$0 start

# Remember status and be quiet
rc_status
;;
force-reload)
## Signal the daemon to reload its config. Most daemons
## do this on signal 1 (SIGHUP).
## If it does not support it, restart.

echo -n "Reload service Tomcat $($CATALINA_BASE)"
## if it supports it:
#killproc -HUP $TOMCAT_BIN
#touch /var/run/FOO.pid
#rc_status -v

## Otherwise:
$0 stop && $0 start
rc_status
;;
reload)
## Like force-reload, but if daemon does not support
## signalling, do nothing (!)

# If it supports signalling:
#echo -n "Reload service FOO"
#killproc -HUP $TOMCAT_BIN
#touch /var/run/FOO.pid
#rc_status -v

## Otherwise if it does not support reload:
rc_failed 3
rc_status -v
;;
status)
echo -n "Checking for Tomcat ($CATALINA_BASE)"
## Check status with checkproc(8), if process is running
## checkproc will return with exit status 0.

# Status has a slightly different for the status command:
# 0 - service running
# 1 - service dead, but /var/run/ pid file exists
# 2 - service dead, but /var/lock/ lock file exists
# 3 - service not running

# NOTE: checkproc returns LSB compliant status values.
if tomcatIsRunning ; then
rc_failed 0
else
rc_failed 3
fi
rc_status -v
;;
probe)
## Optional: Probe for the necessity of a reload,
## give out the argument which is required for a reload.
;;
*)
echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}"
exit 1
;;
esac
rc_exit

marce
23.10.09, 12:46
an sich sehen die Scripte gut aus - die Meldung von oben könnte ich mir durch eine anderen Umgebung erklären, z.B. JAVA_HOME und darauf meist basierend CLASSPATH

Zwerg2003
23.10.09, 13:10
Mag sein. Der Path für Javahome wird aber erst in der catalina.sh gesetzt und nwenn ich nach dem Start mit ps danach greppe bekomme ich auch das richtige Home angezeigt.

Das ganze muss irgendwie was mit dem cron zu tun haben.

marce
23.10.09, 13:23
deswegen sollst Du ja auch z.B. die env von cron und dem User vergleichen.

Zwerg2003
28.10.09, 11:48
Ich habe im cron env den Path und die Variablen für die Java Umgebung nach der root Vorlage angepast. Nun läuft der Tomcat nach dem Neustart durch.
Danke für die Hilfe