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-ID: 257408

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

Ausgedruckt am: 25.11.2024 um 02:11 Uhr

Carlss
Carlss 11.12.2014 um 16:55:25 Uhr
Goto Top
Probier es mal mit "killall".
m3n7or
m3n7or 11.12.2014 um 16:59:02 Uhr
Goto Top
Hey,
Leider selbe Fehlermeldung.
Gersen
Gersen 11.12.2014 um 21:28:53 Uhr
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
m3n7or
m3n7or 12.12.2014 um 09:43:56 Uhr
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?
m3n7or
m3n7or 12.12.2014 um 11:03:05 Uhr
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.