2

Когда я запускаю определенную программу на своем сервере, используя putty, и нажимаю Ctrl+C, чтобы остановить ее, мой stdin перестает возвращаться ко мне в командной строке.
Так, например, после запуска программы и ее остановки, если я наберу ls, я не вижу символов ls, но вижу список каталогов.
Что не так?

1 ответ1

2

в здравом уме

Вероятно, программа устанавливает некоторые настройки терминала (см. man stty), и когда вы прерываете его с помощью Ctrl+C, программа не перехватывает прерывание и не очищает (т.е. восстанавливает до нормального) настройки терминала, а просто выходит. Это может быть просто настройка stty echo (символы ввода эха), которая требует сброса, но, возможно, это и другие настройки.

Просто используйте команду stty sane чтобы восстановить здравомыслие в настройках вашего терминала.

В качестве альтернативы вы можете использовать stty -g > settings.stty для сохранения текущих настроек терминала перед запуском вашей программы. После прерывания программы используйте stty `cat settings.stty` для восстановления этих настроек. Попробуй сначала в stty sane , он должен делать все, что тебе нужно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .