Werden sie in OS X verwendet rc.shutdown
oder rc.shutdown.local
noch verwendet oder wurden sie durch etwas anderes ersetzt?
Mir ist klar, dass dies launchd
das meiste ersetzt, aber ich dachte, Sie könnten trotzdem rc.shutdown.local
ein Skript ausführen.
Ich konnte nicht einmal rc.shutdown irgendwo auf meinem System finden.
/etc/rc.shutdown.local
in/System/Library/LaunchDaemons/com.apple.SystemStarter.plist
, aber ich bin mir überhaupt nicht sicher, was es bedeutet. Die Handbuchseite fürSystemStarter
ist keine große Hilfe, außer uns mitzuteilen, dass sie veraltet ist. Das Programm läuft jedoch auf meinem System. Oh, und die Zeichenfolge/etc/rc.shutdown.local
befindet sich in derSystemStarter
Binärdatei. Ich vermute, dass Dateien dort beim Herunterfahren ausgeführt werden.Antworten:
Ich habe wirklich keine Ahnung. Es gibt eine Erwähnung von
/etc/rc.shutdown.local
in/System/Library/LaunchDaemons/com.apple.SystemStarter.plist
, aber ich bin mir überhaupt nicht sicher, was es bedeutet. Die Handbuchseite fürSystemStarter
ist keine große Hilfe, außer uns mitzuteilen, dass sie veraltet ist. Das Programm läuft jedoch auf meinem System. Oh, und die Zeichenfolge/etc/rc.shutdown.local
befindet sich auch in derSystemStarter
Binärdatei. Ich vermute, dass Dateien dort beim Herunterfahren ausgeführt werden.Aber wenn ich Ihre implizite Frage beantworten darf, wie etwas beim Herunterfahren ausgeführt werden soll: Hier ist, was ich getan habe. Zuerst habe ich dieses kleine C-Programm geschrieben und kompiliert. Was es tut, ist einfach zu schlafen, bis es ein SIGTERM erhält, an welchem Punkt es seine Argumente ausführt:
Ich habe einen Start-Daemon eingerichtet, um dieses Programm beim Start auszuführen. Wenn die Zeit zum Herunterfahren gekommen ist,
launchd
wird der SIGTERM gesendet, der das Programm veranlasst, seine Sache zu tun. Natürlich muss es ziemlich schnell gehen, oder eslaunchd
wird ein größerer Vorschlaghammer angewendet.Hier ist meine
launchctl
Pliste, benanntno.ntnu.math.hanche.quietboot.plist
und platziert in/Library/LaunchDaemons/
. Sein einziger Zweck ist es, `nvram SystemAdioVolume =% 01 'beim Herunterfahren auszuführen, damit ich ohne das Signal neu starten kann.quelle