कीबोर्ड शॉर्टकट के साथ SIGTERM


41

मुझे पता है कि एक टर्मिनल के अंदर, Ctrl+ Cकीबोर्ड शॉर्टकट SIGINTवर्तमान अग्रभूमि प्रक्रिया के लिए एक संकेत भेजेगा । क्या वर्तमान प्रक्रिया में भेजने SIGTERMया यहां तक ​​कि कीबोर्ड शॉर्टकट सेट करने का कोई तरीका है SIGKILL? मुझे लगता है कि यह मुझे कुछ समय बचा सकता है।

मैं चल रहा हुँ Ubuntu 11.04


जवाबों:


24

इसे नियंत्रित करने के लिए स्ट्टी जिम्मेदार है, आपके पास पहले से ही एक सेटअप हो सकता है। आप ऐसा करके देख सकते हैं:

$ stty -e
speed 38400 baud; 53 rows; 225 columns;
lflags: icanon isig iexten echo echoe echok echoke -echonl echoctl
        -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
        -extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff -ixany imaxbel -iutf8
        -ignbrk brkint -inpck ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd -hupcl -clocal -cstopb -crtscts
        -dsrflow -dtrflow -mdmbuf
discard dsusp   eof     eol     eol2    erase   intr    kill    lnext   
^O      ^Y      ^D      <undef> <undef> ^?      ^C      ^U      ^V      
min     quit    reprint start   status  stop    susp    time    werase  
1       ^\      ^R      ^Q      ^@      ^S      ^Z      0       ^W      

अंतिम कुछ पंक्तियों को परिचित होना चाहिए, ^ C = intr वह है जिसका आपने अपने प्रश्न में उल्लेख किया है। आप यह पढ़ सकते हैं कि कैसे और अधिक सेट करें:

$ man stty

13
$ stty -eहै बीएसडी , उबंटू उपयोग के लिए $ stty -a, को देखने के लिए:intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D;
dukedave

1
मैं स्टेटस के लिए सिग्नल को हुक करने में दिलचस्पी रखता हूं, इसलिए मैं 'स्टेटस' कीस्ट्रोक के बारे में सोच रहा हूं, "ctrl- @"। यह एक संकेत है?
एंड्रयू वोल्फ

1
शॉर्टकट ^\ भेजता है SIGQUIT
Ioannis Filippidis

17

मुझे पता है कि एक टर्मिनल के अंदर, Ctrl+ Cकीबोर्ड शॉर्टकट वर्तमान अग्रभूमि प्रक्रिया में एक संकेत संकेत भेजेगा।

आपका ज्ञान दो बिंदुओं पर गलत है:

  1. सिग्नल को अग्रभूमि प्रक्रिया समूह को भेजा जाता है ।
  2. यह केवल CTRL+ है Cअगर वह विशेष चरित्र है जो उस समय कॉन्फ़िगर किया जाना है। (यह अधिकांश आधुनिक प्रणालियों पर डिफ़ॉल्ट है, लेकिन ऐतिहासिक रूप से यह DELचरित्र या कुछ और हो सकता है ।)

क्या वर्तमान प्रक्रिया में SIGTERM या SIGKILL भेजने के लिए कीबोर्ड शॉर्टकट सेटअप करने का कोई तरीका है?

नहीं। लाइन अनुशासन उन संकेतों को नियंत्रित करता है जो संकेत भेजे जाते हैं, और वे संकेत कठोर होते हैं। वे (एक मानक यूनिक्स में) कर रहे हैं SIGHUP, SIGINT, SIGTTOU, SIGTTIN, SIGQUIT, और SIGTSTP। लाइन अनुशासन द्वारा उत्पन्न कोई अन्य नहीं हैं।


13

ट्टी के लिए उपलब्ध संकेतों का सेट SIGINT( Ctrl+ C), SIGTSTP( Ctrl+ Z) और SIGQUIT( Ctrl+ \) हैं। आप उन्हें विभिन्न वर्ण प्रदान कर सकते हैं, लेकिन वे केवल उपलब्ध संकेत हैं। आपके उद्देश्यों के लिए आप भेजने के लिए Ctrl+ का उपयोग करने में सक्षम हो सकते हैं , हालांकि यह एक त्रुटि की तरह काम करता है और डिफ़ॉल्ट रूप से एक कोर डंप का कारण बनता है। आप सेटिंग्स को देखने और बदलने के लिए कमांड का उपयोग कर सकते हैं ।\SIGQUITstty


1
मुझे Ctrl + \ शॉर्टकट को फिर से खोजने के लिए आश्चर्यजनक रूप से लंबा खोज करना पड़ा। आपका बहुत बहुत धन्यवाद! यह बहुत उपयोगी है क्योंकि यह अभी भी काम करता है जब प्रक्रिया Ctrl + C पर प्रतिक्रिया नहीं कर रही है।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.