前几天在客户现场处理问题时,我注意到并顺带提到了有两组应用程序进程在运行:一组以通用名称运行,比如Production.SysAdmin;另一组则以某人的名字运行,已持续运行三年多,暂且称之为Fred.SysAdmin。后来发现Fred其实早已离职。 我并非暗示Fred存有恶意,但这让我想到:常被提及的"最佳实践"是员工离职时立即注销其登录凭证——或许在告知离职前就该执行。然而我从未听闻关于终止Fred启动进程的最佳实践。考虑到VOS系统重启间隔时间较长,此类场景绝非个例。 我建议:除注销离职员工的登录凭证外,还应评估其名下运行的所有进程或执行的程序模块,安排终止操作,必要时由在职员工重新启动。批处理队列同样需要审查,凡以该员工名义提交的请求均应评估、取消,必要时由现职员工重新提交。
要检查批处理队列,您可以使用以下命令:
批量请求列表 -全部 -详细
并查找弗雷德的名字作为“用户”
|
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#* |
你可以使用该命令
分析系统 -请求行 (字符串匹配 fred (字节 3Bx) 谁) -退出
识别以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) |
以下命令宏可用于查找由Fred创建的任何正在执行的程序模块,无论进程运行时采用何种名称。该宏会生成所有正在执行程序模块的列表,随后通过display_file_status确定程序模块文件的创建者,并通过display_program_module确定程序模块的绑定者。 任何由名称与输入字符串匹配者创建或绑定之程序模块,均会连同执行该模块的进程一同显示。同时会在当前目录生成名为 wr_&NAME&.(日期).out 的报告文件,其中 &NAME& 代表传递给宏的参数。所有名称均转换为小写。若未指定名称,则显示所有运行中程序模块的信息,报告文件命名为 wr.(日期).out。
whos_running fred%phx_vos#m15_mas>系统管理员>乔治>循环.pm绑定者:Fred.SysAdmin 创建者:George.SysAdmin 循环.pm: 对象被George.SysAdmin(循环)在模块上读锁定 %phx_vos#m16 正在执行 loop.pm。============================================================%phx_vos#m15_mas>生产环境>测试>ftpd.pm 绑定于:Stcp_Install.Installer 创建者:Fred.SysAdmin ftpd.pm: 该对象被Production.SysAdmin(测试)在模块上读锁定。 %phx_vos#m16 正在执行 ftpd.pm。 准备就绪 09:05:22
|
& whos_running begins_here |
