Neulich bemerkte und erwähnte ich bei der Arbeit an einem Problem bei einem Kunden, dass zwei Sätze von Anwendungsprozessen liefen, ein Satz lief unter einem generischen Namen wie Production.SysAdmin und ein Satz, der seit über 3 Jahren lief, unter dem Namen einer Person, nennen Sie sie Fred.SysAdmin. Es stellte sich heraus, dass Fred die Firma vor einer Weile verlassen hatte. Ich sage nicht, dass Fred in böswilliger Absicht gehandelt hat, aber mir kam mir in den Sinn, dass eine "beste Praxis", die immer erwähnt wird, darin besteht, Freds Anmeldeinformationen sofort zu löschen, wenn er die Firma verlässt, vielleicht kurz bevor Sie ihm sagen, dass er die Firma verlässt. Aber ich habe nie von einer "Best Practice" gehört, was die Beendigung von Prozessen betrifft, die Fred begonnen hatte. Angesichts der Zeitspanne zwischen den Neustarts von VOS-Systemen bin ich sicher, dass dieses Szenario nicht einzigartig ist. Ich schlage vor, dass, abgesehen von der Beendigung der Anmeldeinformationen, wenn jemand das Unternehmen verlässt, jeder Prozess, der unter dem Namen dieser Person läuft oder ein von dieser Person erstelltes Programmmodul ausführt, evaluiert und dann für die Beendigung eingeplant wird und, falls dies als notwendig erachtet wird, von einem aktuellen Mitarbeiter neu gestartet wird. Ebenso sollte die Batch-Warteschlange überprüft werden, und alle Anträge im Namen der Person sollten ausgewertet, abgebrochen und, falls als notwendig erachtet, von einem bestehenden Mitarbeiter erneut eingereicht werden.
Um die Batch-Warteschlange zu überprüfen, können Sie den Befehl
list_batch_requests -alle -lang
und suchen Sie nach Fred's Namen 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 (Zeichenkette passt zu fred (Byte 3Bx) who) -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) |
D as folgende Befehlsmakro kann verwendet werden, um alle von Fred erstellten ausführenden Programmmodule zu finden, unabhängig davon, unter welchem Namen der Prozess läuft. Das Makro erstellt eine Liste aller ausführenden Programmmodule und führt dann einen display_file_status durch, um festzustellen, wer die Programmmoduldatei erstellt hat, und einen display_program_module, um festzustellen, wer das Programmmodul 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&.(date).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 ausführenden Programmmodul an, und der Bericht wird wr.(date).out genannt.
whos_running fred %phx_vos#m15_mas>SysAdmin>George>schleife.pmGebunden durch: Fred.SysAdmin Erstellt: George.SysAdmin Schleife.pm: Objekt wird von George.SysAdmin gesperrt gelesen (Schleife) auf Modul %phx_vos#m16 executing loop.pm.============================================================%phx_vos#m15_mas>Production>test>ftpd.pm Gebunden durch: Stcp_Install.installationsprogramm Erstellt: Fred.SysAdmin ftpd.pm: Objekt wird von Production.SysAdmin (Testing) im Modul lesesperrend gehalten %phx_vos#m16 Ausführung von ftpd.pm. fertig 09:05:22
|
& whos_running begins_here |