मेरे पास एक मिनी 2440 एआरएम बोर्ड है, और मैंने इसका उपयोग करते हुए एक बेस डेबियन 6.0 सिस्टम लगाया है multistrap।
मैंने tmuxकई प्रक्रियाओं को चलाने के लिए उपयोग किया है जिसमें से फ़र्नीचर विंडो में है /etc/rc.local। मैं इसके पोर्ट gettyपर चलने के लिए इसके सीरियल पोर्ट और इनटैब एंट्री का उपयोग कर बोर्ड से जुड़ता हूं । मैं picocomधारावाहिक संचारक के रूप में उपयोग करता हूं ।
जब रूट लॉग होता है, तो ~/.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प्रक्रिया है जिसमें यह मुद्दा है, मुझे लगता है कि इसके या इसके कॉन्फ़िगरेशन के साथ कुछ करना है, लेकिन जब मैं pppdtmux के बाहर चलाता हूं , तो Ctrl-C काम करता है। विकल्प के pppdसाथ चलता nodetachहै, इसलिए यह टर्मिनल अग्रभूमि में रहता है।
मैंने उसी परिणाम के साथ अपनी देव मशीन (डेबियन 6.0 पर amd64) पर भी इसका परीक्षण किया।
^और Ctrl-C इसमें एक जोड़ता है C।
trapशेल स्क्रिप्ट में एक कमांड है?
pppdइसमें यह नहीं कहा गया है कि इसका अंतर्निहित शेल एक प्रत्यक्ष हस्ताक्षर के साथ क्या करने का फैसला करता है। एक छोटे से शेल स्क्रिप्ट को लिखने की कोशिश करें जो आक्रमण / बिन / नींद 600 करता है और शेल प्रक्रिया को एक SIGINT भेजता है, आपको एक ही बात दिखाई देगी।
stty -aदिखाने केintr = ^C? यदि नहीं, तोintrसेटिंग क्या है ? (नोट:stty -a | grep intrयह काम नहीं करेगा, क्योंकि यहsttyआपके tty के बजाय एक पाइप को लिखता है।) क्या Ctrl-V Ctrl-C इको है^C? यदि नहीं, तो क्या प्रतिध्वनित होता है?