Page 1 of 2
problem mit init.d script
Posted: 2009-03-03 20:13
by madmaurice
Hallo Community des RootForums,
bin neu hier, habe gerader erst zuhause einen homeserver installiert und habe bereits ein problem mit einem selbst gebasteltem init-skript.
ich habe transmission-daemon als torrent client auf meinem server laufen (wofür is primär egal)
und hab mir dazu folgendes init script gebastelt:
Code: Select all
DAEMON="transmission-daemon"
SOCKET="/tmp/transmission-socket"
START_ARG="-s $SOCKET"
case $1
in
start)
echo -ne "Starting Transmission-Daemont"
pid=`ps aux | grep transmission | awk '{if($11 == "transmission-daemon") { print $2; exit;} }'`
if [ "$pid" ]; then
echo "[already running]"
exit 0
fi
touch $SOCKET
$DAEMON $START_ARG
chmod 777 $SOCKET
echo "[done]"
;;
stop)
echo -ne "Stopping Transmission-Daemont"
pid=`ps aux | grep transmission | awk '{if($11 == "transmission-daemon") { print $2; exit;} }'`
if [ "$pid" ]; then
kill -9 $pid > /dev/null
rm $SOCKET > /dev/null
echo "[done]"
else
echo "[failed]"
fi
;;
restart)
/etc/init.d/transmission.sh stop
/etc/init.d/transmission.sh start
;;
status)
pid=`ps aux | grep transmission | awk '{if($11 == "transmission-daemon") { print $2; exit;} }'`
if [ "$pid" ]; then
echo "Transmission-Daemon is running."
else
echo "Transmission-Daemon is halted."
fi
;;
*)
echo "Usage: /etc/init.d/transmission.sh start|stop|restart|status"
esac
Mein Problem dabei ist, dass der server das script wohl nicht genauso startet, wie wenn ich es über ssh starte, da ohne manuellen restart alle meine torrents weg sind. (weg im sinne von er hat keine torrents am laden). Auch habe ich Clutch installiert (ein passendes Web-Interface) und der kann nicht auf den socket /tmp/transmission-socket zugreifen erst nachdem ich per ssh 777 gegebenhabe, die selbe zeile im script wird irgendwie ignoriert
falls es wen interessiert habe das script über
Code: Select all
update-rc.d transmission.sh defaults
installiert.
Danke im vorraus.
Re: problem mit init.d script
Posted: 2009-03-03 21:02
by gierig
(wofür is primär egal)
Die Worte machen es schon verdächtig :-)
kein shebang
kein vollständiger pfad oder ein Import der Path Variabel
touch $SOCKET ?
Ohne die Application zu kennen, aber der socket wird immer von dem programm erstellt.
es ist auch eine Spezielle Datei und keine normale.
Re: problem mit init.d script
Posted: 2009-03-03 21:35
by madmaurice
shebang? meisnt du #!/bin/sh ?
das mit der sepziellen datei hab ich nicht gewusst^^ aber wie gesagt hat ja auch manuell gefunzt. lasse es aber trotzdem raus.
Re: problem mit init.d script
Posted: 2009-03-03 21:50
by madmaurice
habe die path variable mal rein geschrieben.
und hab dann noch ein test script eingebaut, um zu sehen ob die scripts wirklich im root ausgeführt wird
Code: Select all
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
whoami >> /root/out.txt
aber es wird keine datei out.txt erstellt.
ist das normal?
Re: problem mit init.d script
Posted: 2009-03-04 11:45
by gierig
Nein das ist es nicht.
Rechte und Speicher Ort OK ?
werden die Runlevel Symlinks auch wirklich gesetzt ( und auch im richtigen Runlevel)
Re: problem mit init.d script
Posted: 2009-03-04 16:50
by madmaurice
ja die links sind alle drin hab auch auf den tipp eines freundes den symlink von dem transmission script im rc.d2 in S99... umbenannt. hat aber auch nicht geholfen. (rc.d2 weil das runlevel 2 mein defaultrunlevel is)
speicherplatz ist auch noch da.
edit: ach speicherort, nunja das script is in /etc/init.d/ und hat +x bekomm
Re: problem mit init.d script
Posted: 2009-03-04 17:55
by madmaurice
verdammt, dachte ich hab das erwähnt.
hab debian lenny
Re: problem mit init.d script
Posted: 2009-03-05 08:24
by gierig
Bitte erstmal mit absuluten Pfaden arbeiten.
Das mus auf jeden fall gehen.
Re: problem mit init.d script
Posted: 2009-03-05 18:54
by madmaurice
ich hab wohl irgendwas mit debian so verändert, dass gar nix mehr geht die ganzen server apps wolln nit starten...
werde debian morgen mal neu aufspielen...
melde mich dann sobald ich wieder das init.d problem aufnehmen kann
Re: problem mit init.d script
Posted: 2009-03-06 14:38
by madmaurice
passt. weiter gehts. hab die pfade absolute gemacht und trotzdem gehts nit....
immer noch keine out.txt -.-
mir fiel auf dass auch das transmission script nichts macht...
Re: problem mit init.d script
Posted: 2009-03-06 19:25
by EdRoxter
Welche Shell benutzt du denn standardmäßig?
Re: problem mit init.d script
Posted: 2009-03-06 19:43
by Joe User
Er hat Debian, also dash ;)
Re: problem mit init.d script
Posted: 2009-03-07 10:56
by EdRoxter
Ich glaube nicht, Tim. :P Das ist erst ab Lenny der Fall. Und auch nur bei einem jungfräulichen System.
Re: problem mit init.d script
Posted: 2009-03-07 16:31
by Joe User
madmaurice wrote:verdammt, dachte ich hab das erwähnt.
hab debian lenny
also dash ;)
Re: problem mit init.d script
Posted: 2009-03-07 17:39
by madmaurice
klingt wie ne krankheit.
is das was gutes oder was schlechtes?
hab ich auch dash wenn der bei mir immer bash errors anzeigt sobald ich was falsch eingeb?
edit:
Wikipedia sagt:
Die dash ist ein moderner Ersatz für die ash im Debian-Projekt, wo sie als Alternative zur bash als /bin/sh eingerichtet werden kann, was die Abarbeitung der init-Skripte beim Hochfahren beschleunigt.
Ich sag vonwegen -.-'
Re: problem mit init.d script
Posted: 2009-03-07 18:42
by Joe User
madmaurice wrote:klingt wie ne krankheit.
Ist es IMHO auch, aber darüber lässt sich streiten ;)
madmaurice wrote:hab ich auch dash wenn der bei mir immer bash errors anzeigt sobald ich was falsch eingeb?
Code: Select all
ls -lh /bin/sh
grep root /etc/passwd
Re: problem mit init.d script
Posted: 2009-03-08 11:03
by madmaurice
Code: Select all
homeserver:~# ls -lh /bin/sh
lrwxrwxrwx 1 root root 4 23. Feb 11:49 /bin/sh -> bash
homeserver:~# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
ich gehe davon aus das /bin/sh und /binbash nicht das gleiche sind, oder?
und was hat dieser unterschied jetz für mich zu bedeuten?
Re: problem mit init.d script
Posted: 2009-03-08 20:53
by EdRoxter
/bin/sh ist nur ein Symlink auf die Shell, die auf deinem System standardmäßig genutzt werden soll. Prinzipiell ist es also eigentlich ratsam, immer /bin/sh als Shell zu verwenden, es sei denn, man will explizit nicht mit der Standard-Systemshell arbeiten.
/bin/bash ist die Binary der Bourne Again Shell und mit eine der weitestverbreiteten. Im Großen und Ganzen hat es für dich zu bedeuten, dass das Problem anscheinend irgendwo anders liegt.
Re: problem mit init.d script
Posted: 2009-03-09 09:53
by gierig
Wie schaut den das script jetzt aus ?
Re: problem mit init.d script
Posted: 2009-03-09 10:28
by daemotron
Es fehlt immer noch der|die|das Shebang. Deine Shell weiß einfach nicht, was sie mit einer Textdatei anfangen soll... also bitte mal folgendes versuchen:
Code: Select all
cd ~
cat > test.sh << "EOF"
#!/bin/sh
/usr/bin/whoami >> /root/out.txt
exit 0
EOF
chmod 0750 test.sh
./test.sh
Wenn das nicht dazu führt, dass eine Datei out.txt angelegt wird, ist mit Deinem System noch irgendetwas anderes faul...
Re: problem mit init.d script
Posted: 2009-03-09 14:32
by madmaurice
Code: Select all
#!/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
/usr/bin/whoami >> /root/out.txt
so sieht mein script aus.
aber es passeirt trotzdem nichts
btw brauch ich LSB unbedingt?
EDIT sobald ichs selber ausführe funktionierts.
btw kann es sein das init.d und crond(crond zeigt das selbe verhalten) versuchen log dateien unter /var/log/... zu schreiben. habe nähmlich aus einer laune heraus platten speicher frei zu machen 30mb logfiles gelöscht, wobei die passenden ordner auch drauf gegangen sind. die ordner für apache und apt hab ich schon wieder angelegt. oder würde sonst das system gar nicht mehr starten?
Re: problem mit init.d script
Posted: 2009-03-09 16:14
by EdRoxter
Dass es funktioniert, wenn du es per Hand ausführst, war ja das, was damit getestet werden sollte.
Die Shebang hattest du in dein init.d-Script schon eingefügt und auch nochmal nachgeprüft, ob der entsprechende Symlink in /etc/rc[0-6].d vorhanden ist und auch auf das richtige Skript zeigt?
Re: problem mit init.d script
Posted: 2009-03-09 18:10
by madmaurice
die shebang sin drin in beiden(transmission und dem whoami-testscript). die links sind nur noch von dem testscript drin, da ich das transmission script raus genommen hab aus den rc[0-6].d weil das vll irgendwann mal amok läuft wenn ich da was falsch einstelle, aber ich aktiviers wieder sobald das andre läuft.
Re: problem mit init.d script
Posted: 2009-03-10 18:55
by madmaurice
keiner mehr ne idee?
Re: problem mit init.d script
Posted: 2009-03-10 19:31
by gierig
Shebang ist auch die erste zeile ?
Datei hast das EXEC Flag (chmod +x file)
Datei gehört Root ? (ls -lh)
Rest von System funktioniert ?
Runlevel Links sind gesetzt (update-rc)
Runlevel ist auch korrekt ?
Das MUSS funktionieren. Da geht kein Weg drann vorbei. Ansosnten Ideen und Ratlos.
kr gierig