Ich kenne einen Interrupt, dh Ctrl+, Cder vom Benutzer im Terminal aufgerufen werden kann (kann er an anderer Stelle aufgerufen werden?)
Gibt es andere Interrupts, die auch vom Benutzer aufgerufen werden können?
Ich kenne einen Interrupt, dh Ctrl+, Cder vom Benutzer im Terminal aufgerufen werden kann (kann er an anderer Stelle aufgerufen werden?)
Gibt es andere Interrupts, die auch vom Benutzer aufgerufen werden können?
Antworten:
Soweit ich weiß, sind die einzigen Signale, die eine Standardtastenkürzel in der Shell haben, SIGINT
( Ctrl+ C), um einen Prozess zu stoppen und SIGSTOP
( Ctrl+ Z), um einen anzuhalten .
Anscheinend gibt es, wie Radu Rădeanu mir gerade beigebracht hat , auch Ctrl+, \das zugeordnet ist SIGQUIT
.
Sie finden eine Liste aller Signale und deren Funktionsweise in 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
SIGILL 4 Core Illegal Instruction
SIGABRT 6 Core Abort signal from abort(3)
SIGFPE 8 Core Floating point exception
SIGKILL 9 Term Kill signal
SIGSEGV 11 Core Invalid memory reference
SIGPIPE 13 Term Broken pipe: write to pipe with no
readers
SIGALRM 14 Term Timer signal from alarm(2)
SIGTERM 15 Term Termination signal
SIGUSR1 30,10,16 Term User-defined signal 1
SIGUSR2 31,12,17 Term User-defined signal 2
SIGCHLD 20,17,18 Ign Child stopped or terminated
SIGCONT 19,18,25 Cont Continue if stopped
SIGSTOP 17,19,23 Stop Stop process
SIGTSTP 18,20,24 Stop Stop typed at terminal
SIGTTIN 21,21,26 Stop Terminal input for background process
SIGTTOU 22,22,27 Stop Terminal output for background process
SIGBUS 10,7,10 Core Bus error (bad memory access)
SIGPOLL Term Pollable event (Sys V).
Synonym for SIGIO
SIGPROF 27,27,29 Term Profiling timer expired
SIGSYS 12,31,12 Core Bad argument to routine (SVr4)
SIGTRAP 5 Core Trace/breakpoint trap
SIGURG 16,23,21 Ign Urgent condition on socket (4.2BSD)
SIGVTALRM 26,26,28 Term Virtual alarm clock (4.2BSD)
SIGXCPU 24,24,30 Core CPU time limit exceeded (4.2BSD)
SIGXFSZ 25,25,31 Core File size limit exceeded (4.2BSD)
SIGIOT 6 Core IOT trap. A synonym for SIGABRT
SIGEMT 7,-,7 Term
SIGSTKFLT -,16,- Term Stack fault on coprocessor (unused)
SIGIO 23,29,22 Term I/O now possible (4.2BSD)
SIGCLD -,-,18 Ign A synonym for SIGCHLD
SIGPWR 29,30,19 Term Power failure (System V)
SIGINFO 29,-,- A synonym for SIGPWR
SIGLOST -,-,- Term File lock lost (unused)
SIGWINCH 28,28,20 Ign Window resize signal (4.3BSD, Sun)
SIGUNUSED -,31,- Core Synonymous with SIGSYS
Sie können die auf Ihrem System verfügbaren Signale anzeigen mit kill -l
:
$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
Beachten Sie, dass es viele SIGRTMAX
und SIGRTMIN
Signale gibt. Der Linux-Kernel unterstützt 32 verschiedene Signale. Der tatsächlich unterstützte Signalbereich hängt jedoch von der glibc
Implementierung auf Ihrem System ab.
for f in {1..9};do man $f SIGINT; done
SIGSTOP
, danke, das war ein Tippfehler. Es gibt keine Manpages für die spezifischen Signale. Sie sollten den genauen Befehl ausführen, den ich gegeben habe : man 7 signal
.
Das SIGQUIT-Signal ähnelt SIGINT (erzeugt von Ctrl+ C), außer dass es von einem anderen Schlüssel gesteuert wird - dem QUIT-Zeichen, normalerweise Ctrl+ \- und einen Core-Dump erzeugt, wenn es den Prozess beendet, genau wie ein Programmfehlersignal. Sie können sich dies als eine vom Benutzer "erkannte" Programmfehlerbedingung vorstellen.
Also, Ctrl+ \(Strg + Backslash) könnte das sein, was Sie wollen.
Referenz: Kündigungssignale .