LINUX.ORG.RU

Не работает Ctrl-C в консоли


0

1

Неожиданная проблема возникла на одном из серверов, не работает Ctrl-C в консоли. SIGINTR не посылается в команды, в самом баше невозможно прервать набор командной строки тем же ctrl-c, и так далее. Дико неудобно, я даже не подозревал, что это такая нужная кнопка.

root@l19:~# stty -a
speed 38400 baud; rows 73; columns 212; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
root@l19:~#

trap ничего не показывает, inputrc не трогали (да он вроде и не при чём), что ещё проверить — не знаю, гугл пишет только про stty (может я правильный запрос придумать не могу). Позавчера всё работало, админов на сервере много, но по истории команд ничего связанного с терминалом хотя бы косвенно я не вижу. Может быть я прямо в stty чего-то важного не понимаю (за предыдущие 10 лет он мне ни разу не понадобился).

★★★★★
Ответ на: комментарий от tailgunner

Не, это по SSH, причём не только у рута, но и у простых пользователей. На начальной консоли наверное просто stty ещё не выполнен, поэтому драйвер терминала просто не знает ещё про эти последовательности. Тут случай вроде бы другой, всё обязано работать.

Teak ★★★★★
() автор топика

Новая прекрасная подробность: если запустить какую-нибудь команду внутри strace, то ctrl-c работает, НО вывод strace при этом нельзя перенаправлять в файл. То есть strace sleep 100 можно прервать, а вот strace -o test.strace sleep 100 или strace -o /dev/null sleep 100 уже не прерывается.

Жаль кстати, а то бы я уже запустил bash внутри strace и прямо так работал, раз в нём есть какая-то полезная для терминала магия. :)

Teak ★★★★★
() автор топика
Ответ на: комментарий от Teak

Нашли старую сессию в старом screen'е, где ctrl-c работает. Вывод ssty там один в один такой же, вывод env (с точностью до PATH, USER, HOME, STY и тому подобного) тоже одинаковый. Однако если порождать баши из-под этого старого скрина, то в них всё хорошо, а из-под любого другого (или просто от нового sshd), то всё плохо. Я вообще не могу понять, в каком месте искать разницу.

Teak ★★★★★
() автор топика

В общем не знаю что там было, но после ребута (по другой причине) оно, как я и предполагал, пропало. В zsh кстати всё было нормально, проблема была как-то связана с башем. Я начинал было его дебажить, но отвлёкся.

Всем спасибо за внимание. :)

Teak ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.