c++ - 关于记录时间的程序/脚本的建议

标签 c++ linux windows logging signals

这是一个稍微开放式的问题,但我正在寻找有关如何解决此问题的一般指导,因为我真的不知道从哪里开始:

对于我现在的雇主,我需要每周记录我的工作时间。因此,我有兴趣编写一个程序(我最喜欢使用 C++)或脚本来“无形地”捕获每次登录到我的机器并将其置于 sleep 状态时的情况。社区可以推荐如何做到这一点的方法吗?

我将进一步描述我的工作环境:

我登录到一个 Windows 盒子,主要用于电子邮件和网页浏览,但我的大部分开发是通过 VNC 连接到 Linux 盒子来完成的。所以我在登录 Windows 后几乎立即登录 Linux 盒子。 Linux 机器是我自己的,所以我可以自由地编写二进制/脚本守护程序在其上运行。

我的第一个想法是编写一个程序,以某种方式“捕获”Windows 登录和 sleep 事件,类似于如何捕获 SIGINT 等 - 但我不知道这是否或如何可能。

我对 Linux 环境还很陌生,所以我不知道为什么会发生这种情况:但当我恢复 VNC session 时,通常不会提示我输入密码(我通常会看到有关 x-screensaver 发生崩溃的错误)。不过,我很少被提示输入密码,但我还不知道被询问和不被询问时有什么区别。我之所以提到这一点,是因为如果有“登录时陷阱”这样的事情,那么在 Linux 机器上似乎是不可行的,因为密码提示不一致。

再说一次:我的目标是有一些东西可以捕获我的登录/注销/ sleep 事件,而无需我每次登录/退出或让系统进入休眠状态时启动命令/脚本。如果编写一个守护进程来执行此操作不合理,是否有现成的(免费的)解决方案可以执行此操作?如果不是 - 即,如果唯一的解决方案是每次登录/退出或让系统进入休眠状态时手动运行某些内容 - 那么我可以拼凑一个程序来执行此操作。

感谢您的指点和建议。

最佳答案

你可以看看“last”命令。在 another stack overflow question这被提到为列出登录/注销时间。在我的机器上,这个命令还给了我看起来像持续时间的值(:我认为)。

如果您想自行研究协议(protocol)登录的可能性,可以将命令添加到“.bashrc”中,以便您在打开 shell 时运行自定义命令。然而,这种方法会为您打开的每个控制台运行命令,而不仅仅是在您登录时运行。

我想研究“last”命令可以很容易地给你你想要的结果。

关于c++ - 关于记录时间的程序/脚本的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41812703/

相关文章:

c++ - 非常大的整数的变量类型是什么?

c++ - 为什么 C++20 中不推荐使用 volatile?

c++ - CUDA、Qt creator 和 Mac

linux - 如何控制firefox通过发送POST请求打开URL?

ruby-on-rails - Make 未被识别为内部或外部命令

.net - .Net windows 程序员有什么理由需要学习 C 或 C++ 了吗?

linux - 挖掘查询 ID 如何工作?

linux - 执行 HBase shell 脚本后返回 linux 命令行提示符

windows - 安装 Leiningen 2.6.0(zip 文件)

c - 使用 C 在 Windows 上按相对路径打开文件