wie einen Skript automatisch ausführen?

ich habe lange herumexperimentiert, konnte das aber nicht zum laufen bringen!
ich habe den skript mehrere male manuell ausgeführt, aber dieser war fehlerfrei.
Aber beim Hernuterfahren wird er nicht ausgeführt. Um Verschreiben zu verhindern, aus der Konsole eingefügt:
murph@murphs:/$ cd ..
murph@murphs:/$ cd etc
murph@murphs:/etc$ cd init.d
murph@murphs:/etc/init.d$ ls
acpid bootlogd gdm ifupdown mountnfs.sh readahead sudo
acpi-support bootmisc.sh halt ifupdown-clean mountvirtfs README sysklogd
alsa checkfs.sh hdparm keymap.sh networking reboot udev
alsa-utils checkroot.sh hostname.sh klogd ntpdate rmnologin udev-mtab
anacron console-screen.sh hotkey-setup linux-restricted-modules-common pcmcia rsync umountfs
apache2 cron hotplug lvm powernowd samba umountnfs.sh
apmd cupsys hotplug-net makedev ppp screen-cleanup urandom
archiver.py dbus hplip mdadm pppd-dns sendsigs usplash
atd dns-clean hwclockfirst.sh mdadm-raid procps.sh single vbesave
bluez-utils evms hwclock.sh module-init-tools rc skeleton xorg-common
bootclean.sh fetchmail ifrename mountall.sh rcS stop-bootlogd
murph@murphs:/etc/init.d$ cd ../rc2.d
murph@murphs:/etc/rc2.d$ ls
K10archiver S11klogd S19cupsys S20makedev S20samba S89atd S99acpi-support
S05vbesave S12dbus S19hplip S20pcmcia S25bluez-utils S89cron S99fetchmail
S10acpid S13gdm S20apmd S20powernowd S25mdadm S91apache2 S99rmnologin
S10sysklogd S14ppp S20hotkey-setup S20rsync S89anacron S98usplash S99stop-bootlogd
murph@murphs:/etc/rc2.d$
Der K10archiver (von mir rot hervorgehoben)ist mein neuer auszuführender Skript
 
Äh ... das Script sollte schon einen ähnlichen Aufbau wie /etc/init.d/skeleton haben ... sonst wird das nix (*.py klingt nach einem Python-Script).
Ist K10archiver ein Link auf archiver.py?
 
genau so ist es!
soll das heißen, dass man keine Möglichkeit hat, beim herunterfahren daten zu sichern?
Unter Python, versteht sich, weil ich von anderen Programmiersprachen wenig ahnung habe
 
du kannst mit dem skeleton ein anderes file ausführen. wie das mit phyton läuft weiss ich nicht, aber wenn du das script aus der konsole heraus starten kannst, dann sollte es auch mit dem skeleton gehen, du musst es nur richtig abändern.
das skleleton ist nicht dafür da deine daten zu sichern, es ist nur dazu da, das script zu starten, welches deine daten sichert.

kapiert?
 
Naja ... fast ;)
Prinzipiell ist der Aufbau aller init-Scripte gleich. skeleton ist eine Art Kopiervorlage ... falls das Dir zu kompliziert ist, kannst Du aber auch fast jedes andere Script anschauen.
Wichtig ist der folgende Part:
Code:
case "$1" in
  start)
  	# hier steht, was beim Aufruf "Script start" bzw. eines S-Links passiert
	#
  stop)
  	# hier steht, was beim Aufruf "Script stop" bzw. eines K-Links passiert
	#
  reload)
  	# hier steht, was beim Aufruf "Script reload" passiert
	# z.B. Neuladen einer Config
	#
  restart|force-reload)
  	# hier steht, was beim Aufruf "Script restart" passiert
	# (normalerweise ein Aufruf von "Script stop" und "Script start"
	#
  *)
        # hier steht, was in allen anderen Aufruffällen passiert
	# (meist nur eine Warnung)
        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac
Du brauchst also 2 Scripte. Eins zum Starten (z.B. backup) und eins für das Backup selbst (archiver.py)
In Deinem Fall müsste also im stop-Part des Scriptes "backup" der Aufruf "/etc/init.d/archiver.py" stehen und dann das Script "backup" im entsprechenden Runlevel via K10backup verlinkt werden ...

Den start-Part und einen entsprechenden Aufruf ala S10backup würde ich nicht machen, da IMHO die K-Links vor den S-Links abgearbeitet werden und somit der Rechner schon aus ist, bevor das Backup läuft ;)
 
Zuletzt bearbeitet:
Prinizpiell ist es egal, welche Sprache fuer init-Skripte benutzt wird, solange das Skript die Parameter start und stop versteht. Ein Skript, das nach /etc/rcX.d/SNNskript verlinkt wurde, wird mit dem Parameter 'start' aufgerufen und wenn es nach /etc/rcX.d/KNNskript verlinkt wurde, wird es mit dem Parameter 'stop' aufgerufen. Deswegen ist es notwendig, dass zumindest diese 2 Parameter vom entsprechenden Programm oder Skript verstanden werden.
Man kann also einfach die entsprechenden Parameter in ein Skript oder Programm einbauen um es im init-System von Linux/Unix nutzen zu koennen. Es ist also eigentlich kein zweites Skript notwendig, solange die Parameter direkt in archiver.py eingebaut werden.
 
Ich werde dass dan einmal versuchen, bin noch in der lernphase.
THX!
 

Ähnliche Themen

Wie große mengen an Daten schnell durchsuchen?

Ist es good practice ein executable Shellscript auch zu sourcen?

(schwerer) Umgang mit der Version von vmlinuz

Wie vom Script verwendete Befehle ermitteln um sie bei Bedarf nach zu installieren?

Bash Unter- Skript unabhängig starten

Zurück
Oben