मैं "Ctrl + C" संयोजन का उपयोग नहीं कर सकता क्योंकि यह सत्र को किल सिग्नल भेजता है।
Ctrl + सी आम तौर पर एक भेजने के लिए माना जाता है इंटरप्ट सिग्नल । इंटरप्ट सिग्नल है सिग्नल 2. तो यह वही कर रहा है जो इरादा था।
Killed by signal 2
वह संदेश वह नहीं है जिसे आप सामान्य रूप से देखते हैं लेकिन यह काफी सही है। यह प्रक्रिया समाप्त हो गई क्योंकि इसे एक संकेत 2 प्राप्त हुआ, बाधा संकेत SIGINT
द्वारा निर्मित Ctrl + सी
पहले यह देखने देता है कि कौन-सा संयोजन इंटरेक्ट सिग्नल से मेल खाता है
$ stty -a | grep intr
intr = ^C
अब इंटरप्ट सिग्नल के न्यूमेरिक मान की जाँच करें
$ man 7 signal
...
Signal Value Action Comment
-----------------------------------------------------------------------
SIGHUP 1 Term Hangup detected on controlling terminal
or death of controlling process
SIGINT 2 Term Interrupt from keyboard
SIGQUIT 3 Core Quit from keyboard
SIGFPE 8 Core Floating point exception
SIGKILL 9 Term Kill signal
SIGSEGV 11 Core Invalid memory reference
ध्यान दें कि KILL सिग्नल 9 (2 नहीं) सिग्नल है। आप इनमें से कोई भी संकेत भेज सकते हैं kill
कमांड लेकिन उनमें से केवल एक ही KILL सिग्नल है और यह सिग्नल 2 नहीं है।
तो सवाल यह है कि उस संदेश का निर्माण क्या है "सिग्नल 2 द्वारा मार दिया गया"।
अगर हम देखें https://stackoverflow.com/questions/3165511/how-to-make-terminal-not-print-killed-by-signal-2-on-catching-a-sigint हम देखते हैं कि यदि आपके पास कोई स्क्रिप्ट है, तो यह संदेश तैयार किया जा सकता है trap SIGINT
संकेतों को ग्रहण करने और विशेष संचालन करने के लिए।
शायद आपके पास ए top
उर्फ या ए top
पहले की स्क्रिप्ट $PATH
से /usr/bin
?
$ type top
top is /usr/bin/top
आप सुझाव देते हैं कि एक एसएसएच सत्र * निक्स कंप्यूटर से main
कंप्यूटर कंप्यूटर client
छूट गया है। आपको एक * निक्स शेल प्रॉम्प्ट पर छोड़ना।
MobiXterm के आपके उल्लेख से लेकर PuTTY के विकल्प के रूप में, मैं आपको लगता है कि आप PuTTY के Windows संस्करण का उपयोग कर रहे हैं न कि PuTTY के * nix संस्करण का। यदि ऐसा है तो यह स्पष्ट नहीं है कि आपका SSH कनेक्शन दो भागों में क्यों है (Win-PC - & gt; "मुख्य" - & gt; "क्लाइंट")।
यदि आप मुख्य और फिर उपयोग करने के लिए लॉग इन करने के लिए PuTTY का उपयोग कर रहे हैं ssh
ग्राहक में प्रवेश करने के लिए, यह विशेष रूप से आश्चर्य की बात नहीं है कि PuTTY के ^ C को मुख्य द्वारा नियंत्रित किया जाता है और ग्राहक के लिए पारित नहीं किया जाता है top
।
हम उल्लेख कर सकते हैं https://unix.stackexchange.com/questions/102061/ctrl-c-handling-in-ssh-session जो इस विषय पर चर्चा करता है।
ssh remotehost
Remotehost पर एक इंटरैक्टिव सत्र चलाएगा। क्लाइंट की तरफ, ssh स्टडी द्वारा उपयोग किए जाने वाले ट्टी को "रॉ" मोड में सेट करने का प्रयास करेगा, और रिमोट होस्ट पर sshd एक छद्म-टिटी आवंटित करेगा और आपके शेल को लॉगिन शेल (जैसे -बैश) के रूप में चलाएगा।
कच्चे मोड को सेट करने का मतलब है कि ऐसे अक्षर जो सामान्य रूप से सिग्नल भेजते हैं (जैसे कि Ctrl-C और Ctrl-), बजाय इनपुट स्ट्रीम में डाले। ssh ऐसे पात्रों को दूरस्थ होस्ट को भेजेगा, जहां वे संभवतः SIGINT या SIGQUIT को भेजेंगे और, आमतौर पर, किसी भी कमांड को मारेंगे और आपको दूरस्थ होस्ट पर एक शेल में लौटाएंगे। Ssh कनेक्शन जीवित रहेगा, जब तक कि रिमोट शेल जीवित है।
...
ssh remotehost command args ...
Remotehost पर एक गैर-संवादात्मक सत्र चलाएगा। क्लाइंट की ओर, ssh tty को कच्चे मोड पर सेट नहीं करेगा (अच्छी तरह से, पासवर्ड या पासफ़्रेज़ में पढ़ने के लिए छोड़कर)। यदि आप Ctrl-C टाइप करते हैं, तो ssh को SIGINT भेज दिया जाएगा और तुरंत ही इसे समाप्त कर दिया जाएगा, यहां तक कि रिमोटहॉस्ट मैसेज का कनेक्शन जारी किए बिना।
इसलिए मुझे संदेह है कि आपका PuTTY सत्र आपके MobaXterm सत्र की तुलना में अलग तरीके से कॉन्फ़िगर किया गया है और कुछ सामान जिस पर आप (और इसलिए हम) अनभिज्ञ हैं।
PuTTY एक संकेत नहीं भेज रहा है, यह एक ASCII नियंत्रण चरित्र भेज रहा है। यह साबित करना आसान है। हम सिर्फ शेल को ASCII कंट्रोल कैरेक्टर 0x03 (ETX, Ctrl + C) बनाने के लिए कहते हैं, शेल के पास कोई विशेष हैंडलिंग नहीं है और फिर देखें कि PuTTY क्या भेजता है:
$ stty intr ^A
$ cat -v
I will now press Ctrl + C ^C
I will now press Ctrl + A
$ $ echo $?
130
देख http://tldp.org/LDP/abs/html/exitcodes.html 130 = 128 + 2 = सिग्नल 2. इस मामले में मैंने ^ ए को 0x01 को शेल में भेजने के लिए इस्तेमाल किया, जिसने सिग्नल 2 को भेजा top
प्रक्रिया। ^ C ने अभी 0x03 भेजा है जो cat-V
^ सी के रूप में प्रदर्शित करता है।
इसलिए मैं यह पता लगाने की कोशिश नहीं कर रहा कि पुट्टी "को क्यों भेजता है" जब मोबाईल्टर नहीं करता है। दोनों में से कोई भी ऐसा नहीं करता है। वे सिर्फ एक ASCII नियंत्रण चरित्र भेजते हैं।
तो देखो कि तुम कैसे PuTTY आह्वान, यह एक डेस्कटॉप आइकन पर क्लिक करके है? क्या उस आइकन में लक्ष्य में अतिरिक्त पैरामीटर के साथ गुण (Alt + Enter) हैं? आदि आदि।
Q
याq
जबकि शीर्ष में आप इसे से बाहर निकल जाएगा। या तुमने कोशिश की ?