Запущение программы на начальной загрузке без входа в систему, использование экрана

Предисловие: у Меня есть сервер, работающий на старом ноутбуке. Экран всегда включен с приглашением ко входу в систему, но потому что его клавиатура находится в довольно плохой форме, я использую его исключительно через 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 вместо этого.)

Этот вид - работ. Однако это имеет несколько проблем:

  • Это не крадет ввод с клавиатуры терминала, таким образом, Вы не можете ctrl+c, чтобы выйти из него (ни изменить сценарий для фактического использования ввода с клавиатуры), и если Вы нажимаете Enter, это показывает его, и прокручивает дисплей, никогда не обновляя его правильно впоследствии.
  • Странно, если я разъединяю ssh сессию, которая создала его, это прекращает работать и показывает сообщение: exec: No such file or directory. Если я снова соединяюсь с ssh, он продолжает функционировать правильно.
  • Это чувствует hackish.

Существует ли лучший способ сделать это? Как?

0
задан 2 September 2012 в 01:01

1 ответ

Я нашел, что действительно существует простой путь. Можно довольно легко использовать 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

предварительный запуск и постостановка только используются так, чтобы экран не выключал, в то время как эта услуга работает, и будет очищена и сброшена к моим значениям по умолчанию, когда сервис закончен.

0
ответ дан 21 October 2019 в 11:35

Другие вопросы по тегам:

Похожие вопросы: