problem mit init.d script

Bash, Shell, PHP, Python, Perl, CGI
madmaurice
Posts: 16
Joined: 2009-03-03 19:58

problem mit init.d script

Post by madmaurice » 2009-03-03 20:13

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.

gierig
Posts: 286
Joined: 2002-10-15 16:59
Location: WHV

Re: problem mit init.d script

Post by gierig » 2009-03-03 21:02

(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.

madmaurice
Posts: 16
Joined: 2009-03-03 19:58

Re: problem mit init.d script

Post by madmaurice » 2009-03-03 21:35

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.
Last edited by madmaurice on 2009-03-03 22:14, edited 1 time in total.

madmaurice
Posts: 16
Joined: 2009-03-03 19:58

Re: problem mit init.d script

Post by madmaurice » 2009-03-03 21:50

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?

gierig
Posts: 286
Joined: 2002-10-15 16:59
Location: WHV

Re: problem mit init.d script

Post by gierig » 2009-03-04 11:45

Nein das ist es nicht.

Rechte und Speicher Ort OK ?
werden die Runlevel Symlinks auch wirklich gesetzt ( und auch im richtigen Runlevel)

madmaurice
Posts: 16
Joined: 2009-03-03 19:58

Re: problem mit init.d script

Post by madmaurice » 2009-03-04 16:50

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

madmaurice
Posts: 16
Joined: 2009-03-03 19:58

Re: problem mit init.d script

Post by madmaurice » 2009-03-04 17:55

verdammt, dachte ich hab das erwähnt.

hab debian lenny

gierig
Posts: 286
Joined: 2002-10-15 16:59
Location: WHV

Re: problem mit init.d script

Post by gierig » 2009-03-05 08:24

Bitte erstmal mit absuluten Pfaden arbeiten.
Das mus auf jeden fall gehen.

madmaurice
Posts: 16
Joined: 2009-03-03 19:58

Re: problem mit init.d script

Post by madmaurice » 2009-03-05 18:54

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

madmaurice
Posts: 16
Joined: 2009-03-03 19:58

Re: problem mit init.d script

Post by madmaurice » 2009-03-06 14:38

passt. weiter gehts. hab die pfade absolute gemacht und trotzdem gehts nit....

Code: Select all

/usr/bin/whoami >> /root/out.txt


immer noch keine out.txt -.-

mir fiel auf dass auch das transmission script nichts macht...

EdRoxter
Posts: 483
Joined: 2006-01-06 03:23
Location: Neben Bonn

Re: problem mit init.d script

Post by EdRoxter » 2009-03-06 19:25

Welche Shell benutzt du denn standardmäßig?

User avatar
Joe User
Project Manager
Project Manager
Posts: 11616
Joined: 2003-02-27 01:00
Location: Hamburg

Re: problem mit init.d script

Post by Joe User » 2009-03-06 19:43

Er hat Debian, also dash ;)
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

EdRoxter
Posts: 483
Joined: 2006-01-06 03:23
Location: Neben Bonn

Re: problem mit init.d script

Post by EdRoxter » 2009-03-07 10:56

Ich glaube nicht, Tim. :P Das ist erst ab Lenny der Fall. Und auch nur bei einem jungfräulichen System.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11616
Joined: 2003-02-27 01:00
Location: Hamburg

Re: problem mit init.d script

Post by Joe User » 2009-03-07 16:31

madmaurice wrote:verdammt, dachte ich hab das erwähnt.

hab debian lenny

also dash ;)
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

madmaurice
Posts: 16
Joined: 2009-03-03 19:58

Re: problem mit init.d script

Post by madmaurice » 2009-03-07 17:39

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 -.-'

User avatar
Joe User
Project Manager
Project Manager
Posts: 11616
Joined: 2003-02-27 01:00
Location: Hamburg

Re: problem mit init.d script

Post by Joe User » 2009-03-07 18:42

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
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

madmaurice
Posts: 16
Joined: 2009-03-03 19:58

Re: problem mit init.d script

Post by madmaurice » 2009-03-08 11:03

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?

EdRoxter
Posts: 483
Joined: 2006-01-06 03:23
Location: Neben Bonn

Re: problem mit init.d script

Post by EdRoxter » 2009-03-08 20:53

/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.
Last edited by EdRoxter on 2009-03-09 10:03, edited 1 time in total.

gierig
Posts: 286
Joined: 2002-10-15 16:59
Location: WHV

Re: problem mit init.d script

Post by gierig » 2009-03-09 09:53

Wie schaut den das script jetzt aus ?

User avatar
daemotron
Administrator
Administrator
Posts: 2800
Joined: 2004-01-21 17:44

Re: problem mit init.d script

Post by daemotron » 2009-03-09 10:28

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...
“Some humans would do anything to see if it was possible to do it. If you put a large switch in some cave somewhere, with a sign on it saying 'End-of-the-World Switch. PLEASE DO NOT TOUCH', the paint wouldn't even have time to dry.” — Terry Pratchett, Thief of Time

madmaurice
Posts: 16
Joined: 2009-03-03 19:58

Re: problem mit init.d script

Post by madmaurice » 2009-03-09 14:32

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?

EdRoxter
Posts: 483
Joined: 2006-01-06 03:23
Location: Neben Bonn

Re: problem mit init.d script

Post by EdRoxter » 2009-03-09 16:14

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?

madmaurice
Posts: 16
Joined: 2009-03-03 19:58

Re: problem mit init.d script

Post by madmaurice » 2009-03-09 18:10

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.

madmaurice
Posts: 16
Joined: 2009-03-03 19:58

Re: problem mit init.d script

Post by madmaurice » 2009-03-10 18:55

keiner mehr ne idee?

gierig
Posts: 286
Joined: 2002-10-15 16:59
Location: WHV

Re: problem mit init.d script

Post by gierig » 2009-03-10 19:31

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