У мене є 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
? Якщо ні, що це лунає?