Ctrl-C পিপিপিডি নন-বিচ্ছিন্ন অধিবেশন দিয়ে কাজ করে না


12

আমার কাছে মিনি 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, তাই এটি টার্মিনাল অগ্রভাগে থাকে।

আমি একই ফলাফল সহ এটি আমার ডেভ মেশিনে (এমডি 64 তে ডেবিয়ান 6.0) পরীক্ষিতও করেছি।


6
না stty -aদেন intr = ^C? তা না হলে intrসেটিং কী? (দ্রষ্টব্য: stty -a | grep intrকাজ করবে না, যেহেতু এটি তোলে sttyআপনার TTY একটি নল থেকে বদলে লেখে।) পায় জন্য Ctrl-ভি Ctrl-C, প্রতিধ্বনি ^C? তা না হলে কী প্রতিধ্বনি হয়?
কিথ থম্পসন

@ কিথথম্পসন সিটিআরএল-ভি প্রিন্ট করে ^এবং সিটিআরএল -সি এতে যুক্ত Cকরে।
zaadeh

7
এটি খুব সুস্পষ্ট বলে মনে হচ্ছে, তবে trapশেল স্ক্রিপ্টে কোনও কমান্ড রয়েছে?
কিথ থম্পসন

1
pppdএর অন্তর্নিহিত শেলটি সরাসরি স্বাক্ষরের সাথে কী করার সিদ্ধান্ত নেয় সে সম্পর্কে কোনও বক্তব্য নেই। একটি ছোট শেল স্ক্রিপ্ট লেখার চেষ্টা করুন যা / বিন / স্লিপ 600 কে অনুরোধ করে এবং শেল প্রক্রিয়াটিকে একটি সাইন ইন প্রেরণ করে, আপনি ঠিক একই জিনিসটি দেখতে পাবেন।
অ্যান্ড্রু বি

2
আমি টিএমাক্সকে যথেষ্ট পরিমাণে জানি না তবে আমার সন্দেহ হয় পিপিডিডি সনাক্ত করে যে এটি টিএমউক্সের অধীনে চলার পরেও টার্মিনাল নেই এবং INT সংকেতগুলি উপেক্ষা করে। এটি শুরু হওয়ার সাথে সাথে পিপিডিডি-র একটি ট্রেস, সেইসাথে যখন tmux প্রথমবার "ডিটাচ্যাচড" করা হয় তখন সম্ভবত তা বলবে।
জোহান

উত্তর:


2

আপনি কি কখনও জিভিন জিএনইউ স্ক্রিনটি চেষ্টা করে দেখেছেন? খুব সত্য বলতে আমি টিএমউক্সের সাথে অনেক অভিজ্ঞতা অর্জন করতে পারি নি, তবে স্ক্রিনটি সর্বদা সুন্দরভাবে কাজ করে।


পর্দা সেক্সি এবং চমত্কার। আপনার জন্য একটি +1।
মূল

0

দেখা গেল এটি pppdডিস্ট্রোতে ব্যবহৃত হচ্ছে এর বিশেষ সংস্করণে একটি বাগ ছিল। আমি চেক করেছি এবং পূর্ববর্তী এবং পরবর্তী সংস্করণগুলিতে pppdএই সমস্যাটি নেই। এছাড়াও সমস্যাটি এই খিলান এবং প্ল্যাটফর্মের সাথে নির্দিষ্ট নয় বা tmux। যদি pppdশেল স্ক্রিপ্টের অভ্যন্তরে চালানো হয় তবে এটি সিটিআরএল-সি পরিচালনা করে না, শেলের বাইরে থাকাকালীন এটির কোনও সমস্যা নেই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.