El otro día mientras trabajaba en un asunto en el sitio de un cliente noté y mencioné que había dos conjuntos de procesos de aplicación ejecutándose, un conjunto ejecutándose bajo un nombre genérico como Production.SysAdmin y un conjunto, que había estado ejecutándose por más de 3 años, bajo el nombre de una persona, llamándolo Fred.SysAdmin. Resulta que Fred había dejado la compañía hace un tiempo. No digo que Fred tuviera ninguna intención maliciosa, pero se me ocurrió que una de las "mejores prácticas" que siempre se mencionan es terminar las credenciales de inicio de sesión de Fred inmediatamente cuando deja la empresa, tal vez justo antes de decirle que está dejando la empresa. Pero nunca escuché ninguna práctica óptima sobre la terminación de los procesos que Fred había iniciado. Dado el tiempo que transcurre entre los reinicios de los sistemas VOS, estoy seguro de que este escenario no es único. Sugiero que, además de dar de baja sus credenciales de acceso cuando alguien abandone la empresa, cualquier proceso que se esté ejecutando bajo el nombre de esa persona o que ejecute un módulo de programa creado por esa persona se evalúe y luego se programe su finalización y, si se considera necesario, se reinicie por un empleado actual. Asimismo, la cola del lote debe ser revisada y cualquier solicitud en nombre de la persona debe ser evaluada, cancelada y, si se considera necesario, presentada de nuevo por un empleado actual.
Para comprobar la cola del lote puedes usar el comando
list_batch_requests -all -long
y buscar el nombre de Fred como el "usuario"
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#* |
Puedes usar el comando
analyze_system -request_line (la cadena coincide con fred (byte 3Bx) who) -quit
para identificar los procesos que se ejecutan bajo el nombre de Fred.
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) |
La siguiente macro de comando puede ser usada para encontrar cualquier módulo de programa de ejecución creado por Fred sin importar el nombre con el que se esté ejecutando el proceso. La macro crea una lista de todos los módulos de programa en ejecución y luego hace un display_file_status para determinar quién creó el archivo de módulo de programa y un display_program_module para determinar quién enlazó el módulo de programa. Cualquier módulo de programa creado o enlazado por alguien con un nombre que coincida con la cadena de entrada se muestra junto con los procesos que ejecutan ese módulo de programa. También crea un informe en el directorio actual llamado wr_&NAME&.(date).out, donde &NAME& es el argumento dado a la macro. Todos los nombres se traducen a minúsculas. Si no se da ningún nombre, muestra información sobre cada módulo de programa en ejecución y el informe se llama wr.(date).out.
whos_running fred SysAdmin>George>loop.pmAtado por: Fred.SysAdmin Creado: George.SysAdmin loop.pm: El objeto es leído bloqueado por George. SysAdmin (bucle) en el módulo %phx_vos#m16 executing loop.pm.============================================================%phx_vos#m15_mas>Production>test>ftpd.pm Atado por: Stcp_Install.Installer Creado: Fred.SysAdmin ftpd.pm: El objeto se lee bloqueado por Production.SysAdmin (prueba) en el módulo ejecutando ftpd.pm. listo 09:05:22
|
& whos_running begins_here |