[[:mac|{{ :Apple.png?40|}}]]
===== (Stop)-Skript beim Herunterfahren ausführen =====
Mac OS hat standardmäßig keine Shutdown Routine, welche das Ausführen von benutzerdefinierten Skripten vorsieht, zB um Settings auf Default zurück zustellen oder irgendwelche Caches zu leeren. Aber es lässt sich relativ einfach eine solche Routine in Mac OS einbauen. Im Prinzip muss dafür nur ein Skript -> /etc/rc.shutdown.local angelegt werden. Dieses Skript kann mit der üblichen Shell Syntax geschrieben werden und wird beim Herunterfahren des Systems ausgeführt. **Note:** Der Besitzer des Skriptes muss root sein, ein execute-Bit wird nicht benötigt.
Soviel zur Pflicht und nun zur Kür. Auch wenn ich jetzt erst mal nur einen Befehl beim Herunterfahren ausführen möchte, kam mir dennoch der Gedanke, wie denn das Skript mal aussehen mag, wenn ich mal mehrere Befehle ausführen möchte oder manche vielleicht für Test Zwecke nur eine Zeit lang beim Herunterfahren ausgeführt wissen möchte? Da habe ich mich an die Benennung der S- und K-Skripts unter Linux erinnert (S -> Start; K -> Kill) und mir selber so eine Shutdown-Routine gebaut. Dazu habe ich folgendes /etc/rc.shutdown.local Skript angelegt:
#!/usr/bin/env bash
SCRIPT_PATH=/usr/local/scripts
ALLOWED_USER=root
/usr/bin/find $SCRIPT_PATH -name K_\*.sh -a -user $ALLOWED_USER -exec sh {} \;
Dieses Skript sucht im Verzeichnis /usr/local/scripts (welches mein Skript-Verzeichnis ist) nach Skripts, welche root gehören und mit K_ beginnen und führt diese der Reihe nach aus. Durch den Aufruf der Skripts über den sh-Befehl ist es auch nicht nötig die Skripts mit dem execute-Bit zu versehen. Solange ich nun auf keine Reihenfolge achten muss in der die Skripts ausgeführt werden, scheint dies eine einfache Lösung zu sein, wo man kleinere Aufgaben beim System Shutdown erledigen kann. Die Abfrage -user root habe ich zur Sicherheit eingebaut, damit mir niemand ohne root-Berechtigung ein Skript unterjubeln kann, welches unkontrolliert beim Shutdown ausgeführt wird.
**Verwandte Artikel:**
[[:mac:start_script|-> Start-Skript erstellen (launchd)]]
--- //pronto 2010/07/22 00:14//
{{keywords>osx snow leopard stop script rc.shutdown.local shutdown herunterfahren}}