Shutdown mit STARTUP.COM

Natürlich kann man ein System immer herunterfahren, indem man die Stromzufuhr unterbricht oder bestenfalls noch den Ein/Aus Schalter drückt. Das Resultat eines solchen unkontrollierten Endes kann aber durchaus unerfreulich sein. Korrupte Filesysteme, halb abgeschlossene Verarbeitungen, nicht auffindbare Datensätze. Die Liste liesse sich endlos erweitern.

Die Vorteile eines geregelten Shutdown liegen also auf der Hand.

Hintereinander oder gleichzeitig?

Natürlich lässt sich der Shutdown fein säuberlich in einem Script seriell abarbeiten, OpenVMS stellt dazu auch die Prozedur SYSHUTDWN.COM zur Verfügung, in der wir alle Appliktionen sauber beenden können. Aber geht es nicht vielleicht ein bisschen schneller und vielleicht gleichzeitiger?

Robert Gezelter hat in seinem Whitepaper "OpenVMS STARTUP: Underappreciated Flexibility"  ausführlich beschrieben, dass der OpenVMS Startup ein modulares und erweiterbares Werkzeug darstellt, mit dem eine OpenVMS Instanz gestartet wird. STARTUP.COM ist demzufolge nicht mehr als ein etwas erweiterter Dispatcher für durchzuführende Arbeitsschritte. Warum also das Rad neu erfinden, wenn doch ein fertiges Werkzeug zur Verfügung steht.

Neue Phasen für Startup

Die Phasenbeschreibung entnehmen sowohl STARTUP.COM als auch SYSMAN der Textdatei, auf die mit dem Logical VMS$PHASES gezeigt wird. Also erzeugen wir uns eine neue Datei SYS$MANAGER:SHUTDOWN_PHASES.DAT

SHUTDOWNPH1
SHUTDOWNPH2

Shuidown konfigurieren

$ DEFINE VMS$PHASES SYS$MANAGER:SHUTDOWN_PHASES.DAT
$ mcr sysman
SYSMAN> startup set database startup$startup_layered
SYSMAN> startup add file SHUTDOWN_CAMPUS_APPL1.COM /phase=SHUTDOWNPH1/mode=spawn
SYSMAN> startup add file SHUTDOWN_CAMPUS_APPL2.COM /phase=SHUTDOWNPH1/mode=spawn
SYSMAN> startup add file SHUTDOWN_CAMPUS_APPL3.COM /phase=SHUTDOWNPH1/mode=spawn
SYSMAN> startup add file SHUTDOWN_CAMPUS_FINAL.COM /phase=SHUTDOWNPH2/mode=spawn
SYSMAN> ^Z

Damit haben wir nun die Schritte für unseren Shutdown definiert.

SYS$MANAGER:SYSHUTDWN.COM

Damit der System-Shutdown nun auch noch unsere Schritte ausführt, passen wir die Site-Shutdown-Procedure ein wenig an:

$ DEFINE/SYSTEM/EXEC VMS$PHASES SYS$MANAGER:SHUTDOWN_PHASES.DAT
$ SPAWN @SYS$SYSTEM:STARTUP

Der System-Shutdown wird nun die Dispatching Funktionalitäten von STARTUP.COM nutzen, um alle usnere Applikationen zu stoppen.

Danksagung

An dieser Stelle herzlichen Dank an Bob Gezelter für die Idee. Den Link zu seinem Artikel und seinen Ausführungen zum OpenVMS Startup finden Sie weiter unten.