运行 Linux 仅限当天首次登录的图形程序

Run Linux graphical program only on first login of the day

我想在每天第一次登录时将我的系统设置为 运行 Thunderbird(需要 x11)(这样如果我在同一天重新启动,它就不会 运行) .我该如何设置它?


对我来说,启动 Thunderbird 的最简单方法是使用 .xinitrc,但我不知道有什么干净的方法可以将它限制为每天仅 运行ning 一次。

我可以这样做的方法是将今天的日期与上次启动时间(在此之前)进行比较,但我不知道这样做的标准化方法,所以我问这个问题而不是避免XY Problem.

我最终没有找到一种惯用的方法来获取上次启动日期,所以我决定将它们存储在自定义文件中,而不是使用 /etc/rc.local(在我的系统启动时执行),比如所以:

# Save boot time
date +%s >> /var/log/bootdate

然后我可以在 .xinitrc 中使用这个文件来启动 Thunderbird 只有当最后一次启动的日期不是今天时(即这是当天的第一次启动):

lastboot="$(date +%D -d@"$(tail -2 </var/log/bootdate | head -1)")"
today="$(date +%D)"
if [ "$today" != "$lastboot" ]; then
    # Run given programs only on the first boot of the day
    thunderbird &
fi