c – 为在服务器上花费的时间构建“里程表”

我想建立一个里程表来跟踪我上次重置计数器后我在服务器上的时间.

最近我在学校的一台unix服务器上记录了很多时间,并开始想知道我在过去几天里有多少时间用完了.我开始尝试考虑如何编写Bash脚本或C程序,以便在我的.bash_profile加载时运行(即,当我进入服务器时),背景本身,并将时间保存到文件中结束了会议.

我知道如何在我登录时运行程序(通过.bash_profile)以及如何对C程序进行后台处理(通过分叉?),但我不确定如何检测ssh会话已被终止(可能是通过观察sshd进程?)
我希望这是正确的堆栈交换,询问你将如何做这样的事情,并欣赏任何输入.

最佳答案 根据您的shell,您可能只能在登录时在后台生成一个进程,然后在父进程(shell)退出时处理kill信号.它不会消耗资源,您不需要root权限,它应该提供相当准确的报告您的登录时间.

您可能需要使用POSIX信号量来处理同时登录多个shell的情况.

点赞