shell skripte Anfängerfrage
-
- Beiträge: 5
- Registriert: 28.08.2013 23:31:59
shell skripte Anfängerfrage
Hallo,
ich versuche aus einem Skript in /etc/init.d ein anderes in /home/blueant/apache... aufzurufen.
Dabei erhalte ich folgende Fehlermeldung:
root@hazelnut-ba:/etc/init.d# ./blueant start
sh: /etc/init.d/bin/startup.sh: Datei oder Verzeichnis nicht gefunden
Blueant starten
Das Spript wird nicht aufgerufen.
Das Skript in /etc/init.d/blueant sieht so aus:
-------------------------------------------------------------------------------------------
#! /bin/sh
### BEGIN INIT INFO
# Provides: Blueant starten
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Kurze Beschreibung
# Description: Längere Bechreibung
### END INIT INFO
# Author: Name <email@domain.tld>
# Um das Skript zu zu aktivieren:
# update-rc.d pcmciautils defaults
# Skript deaktivieren:
# update-rc.d -f pcmciautils remove
# Aktionen
case "$1" in
start)
sh /home/blueant/apache-tomcat-6.0.37/start.sh
echo "Blueant starten"
;;
stop)
/home/blueant/apache-tomcat-6.0.37/stop.sh
;;
restart)
/home/blueant/apache-tomcat-6.0.37/stop.sh
/home/blueant/apache-tomcat-6.0.37/start.sh
;;
*)
echo "nur start stop"
;;
esac
exit 0
---------------------------------------------------------------------------------------------------------------
Vielen Dank schon mal.
ich versuche aus einem Skript in /etc/init.d ein anderes in /home/blueant/apache... aufzurufen.
Dabei erhalte ich folgende Fehlermeldung:
root@hazelnut-ba:/etc/init.d# ./blueant start
sh: /etc/init.d/bin/startup.sh: Datei oder Verzeichnis nicht gefunden
Blueant starten
Das Spript wird nicht aufgerufen.
Das Skript in /etc/init.d/blueant sieht so aus:
-------------------------------------------------------------------------------------------
#! /bin/sh
### BEGIN INIT INFO
# Provides: Blueant starten
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Kurze Beschreibung
# Description: Längere Bechreibung
### END INIT INFO
# Author: Name <email@domain.tld>
# Um das Skript zu zu aktivieren:
# update-rc.d pcmciautils defaults
# Skript deaktivieren:
# update-rc.d -f pcmciautils remove
# Aktionen
case "$1" in
start)
sh /home/blueant/apache-tomcat-6.0.37/start.sh
echo "Blueant starten"
;;
stop)
/home/blueant/apache-tomcat-6.0.37/stop.sh
;;
restart)
/home/blueant/apache-tomcat-6.0.37/stop.sh
/home/blueant/apache-tomcat-6.0.37/start.sh
;;
*)
echo "nur start stop"
;;
esac
exit 0
---------------------------------------------------------------------------------------------------------------
Vielen Dank schon mal.
Re: shell skripte Anfängerfrage
Wahrscheinlich arbeiten die start.sh und stop.sh mit relativen Pfaden zum working directory, anstatt relativ zu ihrer eigenen Position im Dateisystem. Poste mal eins davon (bitte in [code]-Tags).
Vermutlich reicht es, in den entsprechenden Skripten bin/startup.sh durch "$(dirname "$(readlink -f "$0")")/bin/startup.sh)" (mit Anfuehrungszeichen, wie's da steht) zu ersetzen.
Willkommen im Forum!
Gruss Cae
Vermutlich reicht es, in den entsprechenden Skripten bin/startup.sh durch "$(dirname "$(readlink -f "$0")")/bin/startup.sh)" (mit Anfuehrungszeichen, wie's da steht) zu ersetzen.
Willkommen im Forum!
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
-
- Beiträge: 5
- Registriert: 28.08.2013 23:31:59
Re: shell skripte Anfängerfrage
Hallo Cae,
vielen Dank für die schnelle Antwort und die freundliche Begrüßung.
Hie das start Skript.
vielen Dank für die schnelle Antwort und die freundliche Begrüßung.
Hie das start Skript.
Code: Alles auswählen
#!/bin/bash
#export LANG=de_DE@euro
BASEDIR=`pwd`
#######################################################################
#
# Anfang Variablenbereich
#
TOMCAT_HOME=$BASEDIR
JAVA_OPTS="$JAVA_OPTS -Xms256M -Xmx1500M -XX:MaxPermSize=256m -Djava.awt.headless=true"
# fuer den SSL Zugang zum Entwicklungssystem projectplace
#JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStore=/home/placedemo1/WEB-INF/projectplace.keystore -Djavax.net.ssl.keyStorePassword=proventis"
# 64bit Sun Java 1.7
JAVA_HOME=/home/blueant/jdk1.7.0_25/
JDK_HOME=$JAVA_HOME
JRE_HOME=$JAVA_HOME
CATALINA_HOME=$TOMCAT_HOME
CATALINA_TMPDIR=$CATALINA_HOME/temp
CATALINA_PID=$CATALINA_TMPDIR/catalina.pid
#
# Ende Variablenbereich
#
#######################################################################
export JAVA_HOME TOMCAT_HOME JAVA_OPTS CATALINA_HOME CATALINA_TMPDIR CATALINA_PID
sh $CATALINA_HOME/bin/startup.sh
Re: shell skripte Anfängerfrage
Ich wuerd's mal mit(anstatt der `pwd`-Zeile) bzw. mitprobieren. Erstere Loesung funktioniert solange, bis du das Ziel irgendwann umkopierst, letztere sollte dagegen resistent sein.
Gruss Cae
Code: Alles auswählen
BASEDIR=/home/blueant/apache-tomcat-6.0.37/
Code: Alles auswählen
BASEDIR="$(dirname "$(readlink -f "$0")")"
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
-
- Beiträge: 5
- Registriert: 28.08.2013 23:31:59
Re: shell skripte Anfängerfrage
Hallo,
ich hätte noch eine Anschlußfrage:
Mir wurde empfohlen das Start Skript über einen cron-Job zu starten.
Das erscheint mir aber nicht richtig, weil dann ja das stop-Skript nicht aufgerufen wird.
Stattdessen wollte ich es über die Skripte in /etc/init.d machen.
Liege ich da richtig?
Vielen Dank.
ich hätte noch eine Anschlußfrage:
Mir wurde empfohlen das Start Skript über einen cron-Job zu starten.
Das erscheint mir aber nicht richtig, weil dann ja das stop-Skript nicht aufgerufen wird.
Stattdessen wollte ich es über die Skripte in /etc/init.d machen.
Liege ich da richtig?
Vielen Dank.
-
- Beiträge: 5
- Registriert: 28.08.2013 23:31:59
Re: shell skripte Anfängerfrage
Hallo Cae,
in den Spriten unter /home/blueant darf/sollte ich nichts verändern.
Ich schulde Dir ein Bier
Danke
in den Spriten unter /home/blueant darf/sollte ich nichts verändern.
Ich schulde Dir ein Bier
Danke
Re: shell skripte Anfängerfrage
Na super, kaputtes Zeug, was man auch nicht fixen darf. Dann musst du halt im init.d-Skript bzw. Cronjob ein cd einbauen:magicmotion4 hat geschrieben:in den Spriten unter /home/blueant darf/sollte ich nichts verändern.
Code: Alles auswählen
...
# Skript deaktivieren:
# update-rc.d -f pcmciautils remove
cd /home/blueant/apache-tomcat-6.0.37 # <-- neu
# Aktionen
...
Cronjob oder nicht haengt von der Art des Dienstes ab. Wenn er einmal durchlaeuft und sich selbst beendet --> Cronjob. Wenn er sich geplantermassen nie beendet --> init-Skript.
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
-
- Beiträge: 5
- Registriert: 28.08.2013 23:31:59
Re: shell skripte Anfängerfrage
Hallo Cae,
nochmals vielen Dank.
Der Dienst beendet sich nicht von selber, daher denke ich ist der cron Job nicht so gut.
Warum schreibst Du kaputtes Zeug?
Viele Grüße
magicmotion4
nochmals vielen Dank.
Der Dienst beendet sich nicht von selber, daher denke ich ist der cron Job nicht so gut.
Warum schreibst Du kaputtes Zeug?
Viele Grüße
magicmotion4
Re: shell skripte Anfängerfrage
Weil der Programmierer von diesem startup.sh es so geschrieben hat, dass es nur von einem bestimmten Verzeichnis aus funktioniert und bei allen anderen Pfaden nicht. Mit anderen Worten: kaputt. "Schoen" waere stattdessen eine Erkennung der eigenen Position im Dateisystem mittels readlink -f und dirname, wie ich oben gezeigt hatte.magicmotion4 hat geschrieben:Warum schreibst Du kaputtes Zeug?
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier