m3n7or
Goto Top

Tomcat Start-Stop-Skript

Hallo zusammen,

ich hoffe ihr könnt mir weiterhelfen.
Ich habe folgendes Problem.
Mein überschaubarers Startskript für Tomcat macht nur den "Start" einwandfrei, aber der Prozesskill will nicht gelingen.
Wenn ich das shutdown.sh Skript über die Konsole aufrufe klappt es wunderbar, nur im Skript nicht:

stop() {
echo -n "Stopping Tomcat: "
su $TOMCAT_OWNER -c $CATALINA_HOME/bin/shutdown.sh
}

wenn ich das Skript mit der Option "stop" aufrufe, erhalte ich folgende Fehlermeldung:

Usage: kill [-l] [-n signum] [-s signame] job ...
Or: kill [ options ] -l [arg ...]

DasseLbe übrigens auch mit pkill -n 9 java
Als wenn "kill" nicht richtig ausgeführt wird, aber ich weiß nicht warum!?
über "man kill" habe ich rausgefunden, dass die sh ein eingebautes kill hat
"sh
The Bourne shell, sh, has a built-in version of kill to pro-
vide the functionality of the kill command for processes
identified with a jobid. The sh syntax is:

kill [ -sig ] [ pid ] [ %job ]...
kill -l
"
Ich wollte dies mit der direkten Pfad-Angabe umgehen, also z.B. /usr/bin/pkill, aber hat auch nichts gebracht

Weiß jemand Rat?

OS: Solaris 5.11 x86
Tomcat: 8.0.14

Content-Key: 257408

Url: https://administrator.de/contentid/257408

Printed on: April 18, 2024 at 22:04 o'clock

Member: Carlss
Carlss Dec 11, 2014 at 15:55:25 (UTC)
Goto Top
Probier es mal mit "killall".
Member: m3n7or
m3n7or Dec 11, 2014 at 15:59:02 (UTC)
Goto Top
Hey,
Leider selbe Fehlermeldung.
Member: Gersen
Gersen Dec 11, 2014 at 20:28:53 (UTC)
Goto Top
Hallo,

Zitat von @m3n7or:
Wenn ich das shutdown.sh Skript über die Konsole aufrufe klappt es wunderbar, nur im Skript nicht:

Wenn ich den Satz richtig verstehe: Wenn Du das Skript über die Konsole (als root?) ausführst, funktioniert es. Wenn Du es im Rahmen eines Skripts (als Tomcat-User) ausführst, funktioniert es nicht. Korrekt? - Wenn ja, hast zu mal versucht, im Skript das "su $TOMCAT_OWNER -c" wegzulassen?

Gruß,
Gersen
Member: m3n7or
m3n7or Dec 12, 2014 at 08:43:56 (UTC)
Goto Top
Über die Konsole als root führe ich auch su benutzername -c befehl aus oder direkt als der entsprechender user, dennoch habe ich es auch ohne versucht, und sogar mit killall oder pkill, es kommt immer diese Meldung.

Ich habe jetzt mal folgendes probiert um Rechteprobleme auszuschließen, oder das die PID nicht richtig erkannt wird.
ich habe den Befehl "top" im Hintergrund ausgeführt mit "&". Dann habe ich die PID kopiert und im Skript direkt kill -9 PID angegeben und es kommt dennoch diese Fehlermeldung. Scheint also unabhängig von Tomcat, ein Problem mit kill innerhalb eines Skriptes zu sein. Benötigt "kill" bestimmte Environments?
Member: m3n7or
m3n7or Dec 12, 2014 at 10:03:05 (UTC)
Goto Top
Habs nun gelöst.
Manchmal ist es so einfach, ich hatte neben #!/bin/sh nur #!bin/ksh ausprobiert, mit #!/bin/bash funktioniert es jetzt wunderbar.