Neulich, als ich an einem Problem bei einem Kunden arbeitete, bemerkte ich und erwähnte zufällig, dass zwei Sätze von Anwendungsprozessen liefen, ein Satz, der unter einem generischen Namen wie Production.SysAdmin lief und ein Satz, der seit über 3 Jahren lief, unter dem Namen einer Person, nennen wir ihn Fred.SysAdmin. Es stellte sich heraus, dass Fred die Firma vor einer Weile verlassen hatte. Ich sage nicht, dass Fred irgendwelche böswilligen Absichten hatte, aber es kam mir in den Sinn, dass eine "Best Practice", die immer erwähnt wird, darin besteht, Freds Anmeldedaten sofort zu löschen, wenn er die Firma verlässt, vielleicht sogar kurz bevor Sie ihm mitteilen, dass er die Firma verlässt. Aber ich habe nie eine Best Practice über das Beenden aller Prozesse gehört, die Fred gestartet hatte. Angesichts der langen Zeitspanne zwischen den Neustarts von VOS-Systemen bin ich sicher, dass dieses Szenario nicht einzigartig ist. Ich schlage vor, nicht nur die Anmeldedaten zu löschen, wenn jemand das Unternehmen verlässt, sondern auch alle Prozesse, die unter dem Namen dieser Person laufen oder ein von dieser Person erstelltes Programmmodul ausführen, zu bewerten und dann zur Beendigung einzuplanen und, falls erforderlich, durch einen aktuellen Mitarbeiter neu zu starten. Ebenso sollte die Batch-Warteschlange überprüft und alle Anfragen im Namen der Person ausgewertet, abgebrochen und, falls als notwendig erachtet, von einem vorhandenen Mitarbeiter neu eingereicht werden.
Um die Batch-Warteschlange zu überprüfen, können Sie den Befehl
list_batch_requests -all -long
und suchen Sie den Namen von Fred als "Benutzer"
Request: 59 User: 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
analyze_system -request_line (string match fred (byte 3Bx) who) -quit
um Prozesse zu identifizieren, die unter dem Namen von Fred 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) |
D as folgende Befehlsmakro kann verwendet werden, um alle ausführenden Programmmodule zu finden, die von Fred erstellt wurden, unabhängig davon, unter welchem Namen der Prozess läuft. Das Makro erstellt eine Liste aller ausgeführten Programmodule und führt dann ein display_file_status aus, um festzustellen, wer die Programmodul-Datei erstellt hat, und ein display_program_module, um festzustellen, wer das Programmodul gebunden hat. Jedes Programmmodul, das von jemandem erstellt oder gebunden wurde, dessen Name mit der Eingabezeichenfolge übereinstimmt, wird zusammen mit den Prozessen angezeigt, die dieses Programmmodul ausführen. Es wird auch ein Bericht im aktuellen Verzeichnis mit dem Namen wr_&NAME&.(Datum).out erstellt, wobei &NAME& das dem Makro übergebene Argument ist. Alle Namen werden in Kleinbuchstaben übersetzt. Wenn kein Name angegeben wird, zeigt es Informationen zu jedem ausgeführten Programmmodul an und der Bericht heißt wr.(Datum).out.
whos_running fred %phx_vos#m15_mas>SysAdmin>George>loop.pmGebunden durch: Fred.SysAdmin Erstellt: George.SysAdmin loop.pm: Objekt ist durch George.SysAdmin leseseitig gesperrt (Schleife) auf Modul %phx_vos#m16 executing loop.pm.============================================================%phx_vos#m15_mas>Production>test>ftpd.pm Gebunden durch: Stcp_Install.Installer Erstellt: Fred.SysAdmin ftpd.pm: Objekt ist lesegesperrt durch Production.SysAdmin (testing) auf Modul %phx_vos#m16 beim Ausführen von ftpd.pm. bereit 09:05:22
|
& whos_running begins_here |