ubuntuusers.de

Script zum ferngesteuerten Shutdown mit netcat - Problem mit Autostart

Status: Gelöst | Ubuntu-Version: Ubuntu 9.04 (Jaunty Jackalope)
Antworten |

canadian

Anmeldungsdatum:
8. August 2008

Beiträge: Zähle...

Hallo,

ich habe ein Skript, dass es erlaubt den PC herunterzufahren, indem man im Browser die IP des Rechners und einen definierten Port aufruft. Warum möchte ich das? Der PC wird als HTPC und Medienserver genutzt, mit dem Script kann ich dann auch den Rechner aus einem anderen Raum mit der PS3 herunterfahren. Hier nun das Skript:

Eintrag in der /etc/rc.local :

#mkdir /media/daten/test1
sh /media/daten/shutdown/listen.sh 1234
#mkdir /media/daten/test3
exit 0

Eintrag in der listen.sh :

#!/bin/bash
export port=${port:-$1}
nc 192.168.2.20 -l -p $port -e $0 & [ $1 ] || sh /media/daten/shutdown/off.sh
#mkdir /media/daten/test2

Eintrag in der off.sh :

#!/bin/bash
shutdown -h now

Das Problem ist, dass das Skript nicht automatisch startet, bzw. der Prozess nc startet nicht (überprüft mit ps -A | grep nc), aber die Ordner Test1-3 werden alle erstellt (wenn ich sie unkommentiere). führe ich die rc.local manuell aus, dann läuft der nc Prozess auch. Unter Ubuntu Server 8.10 musste ich in der listen.sh "nc.traditional" aufrufen, damit es funktionierte, das bringts jetzt aber nicht.

Kann mir jemand weiterhelfen?

Viele Grüße, Andi

cmowse

Anmeldungsdatum:
7. Mai 2009

Beiträge: Zähle...

Ich würde mal tippen, daß "nc" nicht gefunden wird, weil durch den start einer neuen shell "sh /media/daten/shutdown/listen.sh" die pfadvariable nicht passt. Gib doch einfach mal den absoluten pfad zu nc in deinem script an.

canadian

(Themenstarter)

Anmeldungsdatum:
8. August 2008

Beiträge: 79

danke, aber das hatte ich auch schon probiert und hat nichts gebracht. Ich habe aber das Problem nun mit einem start-stop-daemon gelöst. Denn anscheinend wurde das Verhalten von /etc/rc.local in Jaunty geändert und das Script wird am Ende von der Ausführung von /etc/rc.local terminiert. Der Grund dafür ist der, dass es immer noch mit dem Terminal (tty) verbunden ist und wenn das Terminal geschlossen wird, dann wird auch das Script beendet.

Also habe ich den Eintrag in der rc.local durch folgenden ersetzt:

start-stop-daemon --start --name listen --startas /media/daten/shutdown/listen.sh 1234 --background

und das funktioniert. ☺

Antworten |