linux - 用户登录 Linux 或 Mac OS 时触发的 native 事件

标签 linux macos authentication service solaris

我正在开发需要在 Windows、Linux、Mac OS 和 Solaris 上运行的后台服务。该服务非常简单,用于跟踪学生登录和退出大学计算机。我几乎完成了该服务的 Windows 实现。

我已经购买了很多关于 Linux 和 Mac OS 本地应用程序/服务开发的书籍。我可以从中学习基础知识,但我需要一些更具体的东西,这似乎是一个太具体的主题,我的书无法涵盖。

问题是关于 Linux 和 Mac OS 上的本地事件,当用户登录和注销时,后台服务可以注册以响应这些事件。我还需要获取登录或注销用户的用户 ID(一旦第一项解决,这应该会更直接)。

作为 Linux 和 Mac OS native 开发的新手,我真的可以从这些平台上更有经验的开发人员的帮助中受益。有 friend 建议可以使用PAM来注册接收此类事件的通知。这是真的?

我可能不需要知道我必须做的每件事的确切细节,但最好知道有哪些 native 事件/机制可用于实现此目的(如果有的话,但我希望有,因为 Windows 肯定有它们) .

亲切的问候

卡尔

最佳答案

在 Mac OS X 上,您可以定义 LoginHook 和 LogoutHook 脚本作为登录/注销过程的一部分运行;见Apple's documentationMike Bombich's notes and examples .另一种可能性是创建一个 LaunchAgent——主要区别在于 LaunchAgent 将作为用户在其登录 session 中运行,而 LoginHook 和 LogoutHook 脚本将作为 root 运行。大部分Apple's docs about this专注于 LaunchDaemons,但 LaunchAgents 非常相似,除了它们在用户登录 session 中运行,而 LaunchDaemons 以 root 运行(但独立于登录 session ,使它们不适合您想要的)。

关于linux - 用户登录 Linux 或 Mac OS 时触发的 native 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3530257/

相关文章:

node.js - TypeScript 编译器 (tsc) 在 Raspberry PI 上没有响应

Facebook 登录按钮消失了

c - 从 C 测试 Shellcode - 总线错误 10

ios - 像 "<b1a3c3 d4b5>"这样的 CFDataRef 是什么样的?

node.js - Feathers 通过 POST 进行身份验证有效,但套接字无效

angularjs - 在 AngularJS 中使用 Google Drive API 进行身份验证

c - 非特权用户运行 C/asm 程序会对 Linux 造成什么危害?

linux - 调用 shell 脚本/。 bash 脚本中的 jar 文件

linux - 将 $PATH 显示为列表

node.js - 未找到 Vue 命令