Intereting Posts
Восстановление свободного пространства после обнуления диска с помощью sfill? Сколько времени потребуется для создания пользовательской базы NetBSD и ядра? неопределенный каталог Создание моментального снимка логического тома при загрузке и перед монтированием Неактивная память связана с Commited, но не используется? Прокрутка «OS X-like» в Linux? Есть ли архив старых страниц? специально для функций, доступных для grep в раннем 'ed' Использование прохода на нескольких компьютерах. Какой ключ pgp можно разделить? опции командной строки и чтение файлов людей Переименование нескольких файлов и добавление даты перед файлами Как я могу объяснить этой команде, что они нуждаются в поддержке Linux? Использование дискового пространства xfs на 15-30% больше, чем файлы Перенос всей группы томов LVM2 на RAID5 Postfix / Dovecot Mail появляется в журналах, но не в соответствующей папке Замена слов специальным символом в файле

Ctrl-C не работает с сеансом pppd без отсоединения

У меня есть плата Mini2440 ARM, и я поместил на нее базовую систему Debian 6.0 с использованием multistrap .

Я использовал tmux для запуска нескольких процессов в дефрантных окнах из /etc/rc.local . Я подключаюсь к плате с помощью его последовательного порта и входа inittab для запуска getty на этом порту. Я использую picocom как последовательный коммуникатор.

Когда root входит в систему, ~/.bashrc присоединяет его к уже запущенному серверу tmux, и процессы могут легко отслеживаться. фактическая команда – exec tmux attach-session -t "main" . tmux работает с конфигурацией по умолчанию.

Все работает, кроме одного из процессов (сценарий оболочки вокруг pppd ) не получает Ctrl c из терминала, в то время как другие процессы делают. Также работает Ctrl \ . также kill -INT <pppd_pid> работает, но kill -INT <shellscript_pid> не работает.

Мне действительно нужно Ctrl c для работы. Что не так с этой настройкой?

Изменить: вот вывод stty -a в скрипте оболочки, прямо перед pppd :

 speed 38400 baud; rows 23; columns 80; 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 

потому что это просто процесс pppd , у которого есть эта проблема, я думаю, что это имеет какое-то отношение к ней или ее конфигурации, но когда я запускаю pppd за пределами tmux, Ctrl-C работает. pppd работает с опцией nodetach , поэтому он остается на переднем плане терминала.

Я также тестировал его на моей машине dev (debian 6.0 на amd64) с теми же результатами.

Вы когда-нибудь задумывались о Givin GNU screen? Чтобы быть очень честным, у меня нет большого опыта работы с tmux, но экран всегда делал работу красиво.

Оказалось, что это была ошибка в конкретной версии pppd , которая использовалась в дистрибутиве. Я проверил, и предыдущие и более поздние версии pppd не имеют этой проблемы. Также проблема не связана с этой аркой и платформой или tmux . Если pppd запускается внутри скрипта оболочки, он не обрабатывает Ctrl-C, а снаружи – без проблем.