С GNU date
можно сделать это настолько простой:
date --date="3min"
Но busybox
кажется не настолько умным (все же). Единственное надежное решение я придумал использование bb
:
busybox date -D '%s' -d "$(( `busybox date +%s`+3*60 ))"
(Вам не нужно busybox
части, если нет никого другого date
существующая реализация)
Если Вы хотите отформатированный вывод, Вы могли бы добавить это
busybox date -D '%s' +"%y%m%d%H%" -d "$(( `busybox date +%s`+3*60 ))"
Можно определить два таких ярлыка на консоли Linux. Нажатие Ctrl+Alt+Del отправляет сигнал SIGINT в init
; это инициировало ctrlaltdel
действие в inittab
. Это действие обычно инициировало /sbin/shutdown -t1 -a -r now
(перезагрузите теперь); изменение это к /sbin/shutdown -t1 -a -h now
если Вы хотите остановиться вместо этого. Другой ярлык KeyboardSignal
консольный ключ (связанный с Alt+Up по умолчанию, но можно изменить это в консольной контурной карте), который инициировал kbrequest
действие в inittab.
Обратите внимание, что эта привязка не может быть инициирована, в то время как Вы находитесь в X. Под X, можно использовать функции привязки клавиш менеджера окон или другую программу, такие как xbindkeys. Обратите внимание, что под X, Вы не получаете свободную передачу в команды выполнения как корень; если Вы захотите инициировать перезагрузку, не вводя пароль, то Вам будет нужен a NOPASSWD
запись в sudoers
.
(В стороне: Ctrl+9 выглядит ужасно легким ввести по ошибке. Это - также сочетание клавиш в нескольких приложениях. Выберите что-то более редкое и с двумя модификаторами!)
Что-то довольно подобное действительно, вероятно, уже работает: посмотрите сочетания клавиш SysRq (см. также документацию ядра Linux). Некоторый вариант REISUB
, возможно, REISUO
(O
для выключения питания вместо B
для перезагрузки), мог быть тем, что Вы хотите.
Не столь быстрый и универсальный как способ связать Ctrl+9 с любой командой, но возможность.