Предисловие: у Меня есть сервер, работающий на старом ноутбуке. Экран всегда включен с приглашением ко входу в систему, но потому что его клавиатура находится в довольно плохой форме, я использую его исключительно через ssh. Экран находится в хорошем положении, хотя; я хочу использовать его для отображения часов и некоторой статистики о том, что делает мой сервер. У меня есть сценарии для отображения всех тех вещей, но я хочу всегда показать им на экране монитора.
Мой вопрос, как я заставляю свой сценарий (названный HUD) работать на/dev/tty1 вместо приглашения ко входу в систему. Хотелось бы надеяться, должно быть возможно принять ввод с клавиатуры, а также отобразить его вывод, так, чтобы это могло использовать клавиатуру для показа большего количества информации при необходимости в будущей версии. Я также хотел бы, чтобы tty2 и т.д. остался активным, поскольку вход в систему экранирует, в поверхности я на самом деле должен войти в систему локально.
Для запуска я пытался создать скрипт, который я могу запустить от ssh для запуска HUD. Это проходит примерно так:
(
flock -n 9
watch --interval 0.2 --precise --color --notitle --exec /path/to/script & disown
) 9> /var/lock/hud > /dev/tty1 2> /dev/tty1 < /dev/tty1
(Я должен был использовать & disown
вместо nohup
потому что nohup
распознанный tty и вывод перенаправлений к nohup.out
вместо этого.)
Этот вид - работ. Однако это имеет несколько проблем:
exec: No such file or directory
. Если я снова соединяюсь с ssh, он продолжает функционировать правильно.Существует ли лучший способ сделать это? Как?
Я нашел, что действительно существует простой путь. Можно довольно легко использовать init сценарий для создания сервиса, который работает на консоли. Вот пример.
$ cat /etc/init/hud.conf
console owner
pre-start script
setterm -powerdown 0 -blank 0
end script
exec /home/configurator/bin/hud-display
post-stop script
clear
setterm -blank 2
end script
предварительный запуск и постостановка только используются так, чтобы экран не выключал, в то время как эта услуга работает, и будет очищена и сброшена к моим значениям по умолчанию, когда сервис закончен.