当特定用户注销时,我需要在屏幕上运行我的应用程序,当我的用户列表中的某人登录时,我需要关闭屏幕。所以我正在考虑 bash 脚本,它将从 cron 定期调用,并且:
- 检查特定用户是否登录。
- 如果没有人登录 - 生成屏幕并将 pid 保存到文件,或者如果 pid 文件已存在则不执行任何操作
- 如果有人登录 - 从文件中读取 pid 并终止屏幕
我正在寻找更复杂的替代方案,这将消除 cron 中定期运行的脚本。
答案1
几个明显的选择:
- 修改
/etc/profile
以添加注销挂钩(或者如果您的系统已经有注销挂钩文件,请修改它) - 修改系统 PAM 配置以添加额外的会话控制器(pam_script 库专门解决此问题)
- 修改正在考虑的用户的登录 shell,使其在启动时杀死其他程序,生成真正的登录 shell,然后在真正的登录 shell 退出时启动屏幕程序
- (如果你只关心控制台登录)替换getty