Запускайте графическую программу Linux только при первом входе в день - PullRequest
0 голосов
/ 26 апреля 2019

Я хочу настроить свою систему для запуска Thunderbird (для которой требуется x11) при первом входе в систему каждый день (поэтому, если я перезагружаюсь в тот же день, она не запустится).Как мне настроить это?


Самый простой способ запустить Thunderbird для меня - использовать .xinitrc, но я не знаю чистого способа ограничить его запуск только один раз задень.

Способ, которым я мог бы сделать это, - сравнить сегодняшнюю дату с последним временем загрузки (до этого), но я не знаю стандартизированного пути к этому, поэтому я задаю этот вопросвместо этого, чтобы избежать XY Проблема .

1 Ответ

0 голосов
/ 30 апреля 2019

В итоге я не нашел идиоматического способа получения даты последней загрузки, поэтому решил вместо этого сохранить их в пользовательском файле, используя /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
...