Когда я запускаю определенную программу на своем сервере, используя putty, и нажимаю Ctrl+C, чтобы остановить ее, мой stdin перестает возвращаться ко мне в командной строке.
Так, например, после запуска программы и ее остановки, если я наберу ls, я не вижу символов ls, но вижу список каталогов.
Что не так?
1 ответ
в здравом уме
Вероятно, программа устанавливает некоторые настройки терминала (см. man stty
), и когда вы прерываете его с помощью Ctrl+C, программа не перехватывает прерывание и не очищает (т.е. восстанавливает до нормального) настройки терминала, а просто выходит. Это может быть просто настройка stty echo
(символы ввода эха), которая требует сброса, но, возможно, это и другие настройки.
Просто используйте команду stty sane
чтобы восстановить здравомыслие в настройках вашего терминала.
В качестве альтернативы вы можете использовать stty -g > settings.stty
для сохранения текущих настроек терминала перед запуском вашей программы. После прерывания программы используйте stty `cat settings.stty`
для восстановления этих настроек. Попробуй сначала в stty sane
, он должен делать все, что тебе нужно.