У мене є Mini2440 ARM Board, і я поставив на неї базову систему Debian 6.0 за допомогою multistrap.
Я використовував tmuxдля запуску декількох процесів у різних Windows /etc/rc.local. Я підключаюсь до плати, використовуючи її послідовний порт і запис inittab для запуску gettyцього порту. Я використовую picocomяк послідовний комунікатор.
Коли root входить у систему, ~/.bashrcдодає його до вже запущеного сервера tmux, і процеси можна легко відстежувати. фактична команда exec tmux attach-session -t "main". tmux працює з конфігурацією за замовчуванням.
Все працює, за винятком того, що один з процесів (сценарій оболонки навколо pppd) не отримує Ctrlcз терміналу, а інші процеси. Також Ctrl\працює. також kill -INT <pppd_pid>працює, але kill -INT <shellscript_pid>ні.
Мені дуже потрібно Ctrlcпрацювати. Що не так з цією установкою?
Редагувати: ось вихід 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опцією, тому він залишається на передньому плані терміналу.
Я також тестував його на своїй машині розробки (Debian 6.0 на amd64) з тими ж результатами.
^а Ctrl-C додає Cдо нього.
trapскрипті оболонки команда?
pppdне має нічого сказати в тому, що основна оболонка вирішує робити з прямим SIGINT. Спробуйте написати крихітний скрипт оболонки, який викликає / bin / sleep 600 і надішляє процес оболонки SIGINT, ви побачите абсолютно те саме.
stty -aпоказуєintr = ^C? Якщо ні, то якаintrнастройка? (Примітка:stty -a | grep intrне буде працювати, оскільки він змушуєsttyзаписувати в трубу, а не на ваш tty.) Чи лунає Ctrl-V Ctrl-C^C? Якщо ні, що це лунає?