• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Server beim Start des Clients aufwecken, aber wie?

Pilz

Member
Ich hoffe, daß ich das richtige Forum erwischt habe, bin mir nicht so ganz schlüssig.

Folgendes Problem:
Der Server ist im Suspend to RAM Modus. Wenn ich nun den Client starte, dann habe ich kein Zugriff via NFS auf den Server bzw. auf den CUPS Server, wenn der Server nach dem Start des Clients aufgeweckt wird. Mein Lösungsansatz war, beim Start des Clients den Server via "wol <Mac-Adresse>" aufzuwecken. Dieser Befehl sollte also irgendwann während des Hochfahrens automatisch ausgeführt werden. Ist das sinnvoll, oder gibt es da bessere Möglichkeiten? Was sagen die Experten dazu?

Und wenn es sinnvoll ist, wie setze ich das dann in die Praxis um (ich begebe mich hier gerade auf neues Terrain, habt bitte Nachsicht mit mir)?

Grüße
Stefan
 

Pumphaus

Member
Hmm - also der Ansatz, dass im Bootprozess zu machen, ist nicht schlecht, würde ich auch so machen. Allerdings habe ich jetzt nicht so tolle Erfhrungen gemacht mit Wake-On-LAN, sei es jetzt unter Windows oder Linux. Ich habe es erst einmal unter Windows probiert, und es ging natürlich nicht. Ich hatte auch keinen Nerv, das weiter auszuprobieren, aber ich kann natürlich nicht auf andere Rechner schließen. Nebenbei hab ich keine Ahnung, wie man WOL mit Linux macht.
 
OP
Pilz

Pilz

Member
So, ich hab jetzt folgendes gemacht:

Eine ausführbare Datei namens serwa im Verzeichniss /etc/init.d erstellt.
Code:
#! /bin/sh
# /etc/init.d/serwa
### BEGIN INIT INFO
# Provides:          serwa
# Required-Start:    $network
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start:     3 5
# Default-Stop:
# Short-Description: start server via wol
# Description:       Start Server via wol <Mac-Adress> while booting Client.
### END INIT INFO

/usr/bin/wol 00:12:17:5C:70:3B
exit 0

Diese Datei habe ich mit Hilfe von "insserv serwa" in den Runlevel mit eingebunden. Unter /etc/init.d/rc3.d und /etc/init.d/rc5.d erscheint diese Datei jeweils als K15serwa und S07serwa.

Wenn ich nun den Client runterfahre, wird der Server aufgeweckt, wenn ich allerdings den Client hochfahre, passiert nichts.

1. Wieso? Was muss vorher noch gestartet werden, damit das Magic Packet am Server ankommt?

2. Kann man das Programm (serwa) so lassen oder habe ich grobe Schnitzer eingebaut?

schon mal besten Dank

Stefan
 
Also ich würde das so machen:

Code:
#! /bin/sh 
# /etc/init.d/serwa 
### BEGIN INIT INFO 
# Provides:          serwa 
# Required-Start:    $network 
# Should-Start: 
# Required-Stop: 
# Should-Stop: 
# Default-Start:     3 5 
# Default-Stop: 
# Short-Description: start server via wol 
# Description:       Start Server via wol <Mac-Adress> while booting Client. 
### END INIT INFO 

. /etc/rc.status
rc_reset

case "$1" in
start)
/usr/bin/wol 00:12:17:5C:70:3B 
rc_status -v
exit 0
;;

stop)
exit 0;
;;

*)
echo "Usage: $0 { start | stop }"
exit 1
;;
esac
rc_exit
 
OP
Pilz

Pilz

Member
Danke b3ll3roph0n
Ich hab das jetzt mal nach deinem Vorschlag ausprobiert. Leider habe ich auch damit kein Erfolg gehabt. Ich finde zwar im Bootlog-File den Eintrag
Code:
Waking up 00:12:17:5C:70:3B...               done
aber der Server reagiert nicht.
Ich vermute, daß es daran liegt, daß irgend etwas noch nicht gestartet ist. Was das allerdings sein soll, keine Ahnung.


:?

hier noch ein Auszug aus dem Bootlog-File

Code:
Setting up network interfaces:
    lo        
    lo        IP address: 127.0.0.1/8   
done    eth0      device: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
    eth0      No configuration found for eth0
unused    eth1      device: Intel Corporation PRO/Wireless 2200BG (rev 05)
    eth1      configuration: wlan-id-00:0e:35:8d:c6:04
    eth1      IP address: 192.168.178.20/24   
doneSetting up service network  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .done
Waking up 00:12:17:5C:70:3B...
done
<notice>startproc: execve (/usr/sbin/mdnsd) [ /usr/sbin/mdnsd -f /etc/rendezvous.conf -b ], [ CONSOLE=/dev/console ROOTFS_FSTYPE=reiserfs TERM=linux SHELL=/bin/sh ROOTFS_FSCK=0 INIT_VERSION=sysvinit-2.85 INIT=/sbin/init REDIRECT=/dev/tty1 COLUMNS=80 PATH=/sbin:/usr/sbin:/bin:/usr/bin:/lib/klibc/bin RUNLEVEL=5 PWD=/ SPLASHCFG= ROOTFS_REALDEV=/lib/klibc//dev/hda2 PREVLEVEL=N LINES=25 HOME=/ SHLVL=2 splash=silent SPLASH=no ROOTFS_BLKDEV=/dev/hda2 _=/sbin/startproc DAEMON=/usr/sbin/mdnsd ]
Starting mdnsddone
<notice>startproc: execve (/sbin/portmap) [ /sbin/portmap ], [ CONSOLE=/dev/console ROOTFS_FSTYPE=reiserfs TERM=linux SHELL=/bin/sh ROOTFS_FSCK=0 INIT_VERSION=sysvinit-2.85 INIT=/sbin/init REDIRECT=/dev/tty1 COLUMNS=80 PATH=/sbin:/usr/sbin:/bin:/usr/bin:/lib/klibc/bin RUNLEVEL=5 PWD=/ SPLASHCFG= ROOTFS_REALDEV=/lib/klibc//dev/hda2 PREVLEVEL=N LINES=25 HOME=/ SHLVL=2 splash=silent SPLASH=no ROOTFS_BLKDEV=/dev/hda2 _=/sbin/startproc DAEMON=/sbin/portmap ]
Starting RPC portmap daemondone
Starting smart card terminalsdone
Starting nfsboot (sm-notify) done
Importing Net File System (NFS)<notice>startproc: execve (/opt/kde3/bin/kdm) [ /opt/kde3/bin/kdm ], [ LC_MONETARY= CONSOLE=/dev/console ROOTFS_FSTYPE=reiserfs SHELL=/bin/sh TERM=linux ROOTFS_FSCK=0 LC_NUMERIC= QTDIR=/usr/lib/qt3 LC_ALL= INIT_VERSION=sysvinit-2.85 INIT=/sbin/init KDEROOTHOME=/root/.kdm REDIRECT=/dev/tty1 COLUMNS=80 PATH=/sbin:/usr/sbin:/bin:/usr/bin:/lib/klibc/bin LC_MESSAGES= RUNLEVEL=5 LC_COLLATE= SPLASHCFG= PWD=/ LANG=de_DE@euro ROOTFS_REALDEV=/lib/klibc//dev/hda2 PREVLEVEL=N LINES=25 SHLVL=2 HOME=/ XCURSOR_THEME=crystalwhite WINDOWMANAGER=/usr/X11R6/bin/kde LC_CTYPE=de_DE@euro SPLASH=no splash=silent LC_TIME= ROOTFS_BLKDEV=/dev/hda2 _=/sbin/startproc DAEMON=/opt/kde3/bin/kdm ]
<notice>checkproc: /opt/kde3/bin/kdm 6277
mount server reported tcp not available, falling back to udp
mount: RPC: Remote system error - No route to host
done
Starting service kdmdone
 

framp

Moderator
Teammitglied
Such mal nach WOL im Forum. Ist immer wieder Thema. U.A gibt es da auch http://www.linux-club.de/viewtopic.php?t=49990&highlight=wol
Vielleicht hilfts ;-)
 
1.) Funktioniert es denn, wenn du das Script manuell aufrufst?

2.) Hab noch was in '/etc/init.d/skeleton' gefunden:
Code:
[...]
#       $local_fs               all local file systems are mounted
#                               (most services should need this!)
#       $remote_fs              all remote file systems are mounted
#                               (note that /usr may be remote, so
#                                many services should Require this!)
#       $syslog                 system logging facility up
#       $network                low level networking (eth card, ...)
[...]
also mal mit
Code:
# Required-Start:     $syslog $remote_fs $network
versuchen.

Mir fehlt hier leider die Möglichkeit WoL zu testen. Sry :roll:
 

stka

Guru
denk dran, dass du für WOL eine besondere Netzwerkkarte mit einem Anschluss an dein Motherboard (z.B. 3c905 von 3com)
 
OP
Pilz

Pilz

Member
@b3ll3roph0n

Wenn ich das Script von dir manuell aufrufe tut sich garnichts, genauso wie beim Boot oder Shutdown. Deshalb bin ich erstmal wieder zu meinem eigenen Script zurückgekehrt, da es damit wenigsten beim Runterfahren funktionierte. Allerdings war dein Hinweis auf die Skeletondatei richtig. Das war es was ich gesucht hatte.
Code:
#       $local_fs               all local file systems are mounted
#                               (most services should need this!)
#       $remote_fs              all remote file systems are mounted
#                               (note that /usr may be remote, so
#                               many services should Require this!)

Das habe ich vorher nicht gesehen (Wald vor lauter Bäume nicht).

Ich habe nun den Eintrag required auf
Code:
# Required-Start:    $network $local_fs $remote_fs
erweitert, und siehe da, es funktioniert. Der Server wird beim Boot des Clients aufgeweckt. Scheinbar bin ich damit aber nun in die nächste Abhängigkeit reingelaufen. PORTMAP, NFS und NFSBOOT wird vor meinem Programm serwa gestartet, was zur Folge hat, daß ich das freigebene Verzeichniss auf dem Server manuell mounten muss. Ändere ich die Startreihenfolge von serwa, nfs, nfsboot und portmap (egal in welcher Reihenfolge) wird der Server beim Boot des Clients nicht mehr augeweckt.
Fazit: entweder schreib ich noch ein weiteres Prog, welches im Autostartverzeichniss von KDE abgelegt wird, oder irgend jemand kann mir einen Tipp geben, wie ich die Startreihenfolge korrekt ändere. :wink:

@framp
Den Beitrag hatte ich auch schon zwischen gehabt, aber da geht es ja darum, WOL überhaupt erstmal ans laufen zu bringen. Händisch klappt das bei mir ja alles.

@stka
WOL funktioniert, da ich auch eine entsprechende Karte habe (Linksys LNE100TX-DE, PCI-Karte auf einem alten Medion9100 Board. Ist ohne Probleme von Suse10 erkannt und konfiguriert worden.).
 

framp

Moderator
Teammitglied
Pilz schrieb:
@framp
Den Beitrag hatte ich auch schon zwischen gehabt, aber da geht es ja darum, WOL überhaupt erstmal ans laufen zu bringen. Händisch klappt das bei mir ja alles.
Das ging fuer mich nicht aus den vorherigen Postings hervor :roll: .Aber auch stka gab Hinweise wie man WOL ans Laufen bringt :wink: .
 
Oben