Als ich neulich bei einem Kunden vor Ort an einem Problem arbeitete, fiel mir auf – und ich erwähnte es beiläufig –, dass zwei Sätze von Anwendungsprozessen liefen: einer unter einem generischen Namen wie „Production.SysAdmin“ und einer, der seit über drei Jahren lief, unter dem Namen einer Person – nennen wir ihn „Fred.SysAdmin“. Es stellte sich heraus, dass Fred das Unternehmen schon vor einiger Zeit verlassen hatte. Ich behaupte nicht, dass Fred böswillige Absichten hatte, aber mir kam der Gedanke, dass eine oft erwähnte „Best Practice“ darin besteht, Freds Anmeldedaten sofort zu löschen, wenn er das Unternehmen verlässt – vielleicht sogar schon, bevor man ihm mitteilt, dass er das Unternehmen verlässt. Ich habe jedoch noch nie von einer Best Practice gehört, die das Beenden von Prozessen vorsieht, die Fred gestartet hatte. Angesichts der langen Zeitabstände zwischen den Neustarts von VOS-Systemen bin ich mir sicher, dass dieses Szenario kein Einzelfall ist. Ich schlage vor, dass neben der Sperrung der Anmeldedaten bei Ausscheiden einer Person auch alle Prozesse, die unter dem Namen dieser Person laufen oder ein von ihr erstelltes Programmmodul ausführen, überprüft, zur Beendigung eingeplant und, falls erforderlich, von einem aktuellen Mitarbeiter neu gestartet werden. Ebenso sollte die Batch-Warteschlange überprüft und alle Aufträge im Namen dieser Person bewertet, storniert und, falls erforderlich, von einem bestehenden Mitarbeiter erneut eingereicht werden.
Um die Batch-Warteschlange zu überprüfen, können Sie den folgenden Befehl verwenden
list_batch_requests -all -long
und suche nach Freds Namen als „Benutzer“
|
Request: 59User: Fred.SysAdmin Time queued: 10-08-11 05:00:02 edt Deferred until: 10-08-12 05:00:00 edt Attributes: waiting, not privileged, cannot restart Process priority: 5 Queue priority: 4 Process name: test Command: test.cm Output path: %system#m16_mas>SysAdmin>Fred>test.out Home dir: %system#m16_mas>SysAdmin>Fred Notify users: Fred.* on %system#* |
Sie können den Befehl verwenden
analyze_system -request_line (Zeichenkette, die mit „fred“ (Byte 3Bx) übereinstimmt) -quit
um Prozesse zu identifizieren, die unter Freds Namen laufen.
analyze_system -request_line (string match fred (byte 3Bx) who) -quit OpenVOS Release 17.0.2ah, analyze_system Release 17.0.2ah Current process is 182, ptep 958C5000, Noah_Davids.CAC * 162 958C5000 551080B6 Fred.SysAdmin (testing) |
Mit dem folgenden Befehlsmakro lassen sich alle von Fred erstellten Programm-Module finden, die gerade ausgeführt werden, unabhängig davon, unter welchem Namen der Prozess läuft. Das Makro erstellt eine Liste aller ausgeführten Programm-Module und führt anschließend einen `display_file_status`-Befehl aus, um festzustellen, wer die Programm-Modul-Datei erstellt hat, sowie einen `display_program_module`-Befehl, um festzustellen, wer das Programm-Modul gebunden hat. Jedes Programmmodul, das von einer Person erstellt oder gebunden wurde, deren Name mit der Eingabezeichenfolge übereinstimmt, wird zusammen mit den Prozessen angezeigt, die dieses Programmmodul ausführen. Außerdem wird im aktuellen Verzeichnis ein Bericht mit dem Namen wr_&NAME&.(date).out erstellt, wobei &NAME& das an das Makro übergebene Argument ist. Alle Namen werden in Kleinbuchstaben umgewandelt. Wenn kein Name angegeben wird, werden Informationen zu jedem ausgeführten Programmmodul angezeigt und der Bericht erhält den Namen wr.(date).out.
whos_running fred%phx_vos#m15_mas>SysAdmin>George>loop.pmBindungsdatum: Fred.SysAdmin Erstellt von: George.SysAdmin loop.pm: Das Objekt wird von George.SysAdmin (Schleife) im Modul lesegeschützt %phx_vos#m16 Ausführung von loop.pm.============================================================%phx_vos#m15_mas>Produktion>Test>ftpd.pm Gebunden durch: Stcp_Install.Installer Erstellt von: Fred.SysAdmin ftpd.pm: Das Objekt ist von „Production.SysAdmin (testing)“ im Modul lesegeschützt. %phx_vos#m16 führt ftpd.pm aus. Bereit 09:05:22
|
& whos_running begins_here |
