SIGQUIT è uguale a SIGTERM?


13

Sto imparando CentOS / RHEL e attualmente sto facendo alcune cose sulla gestione dei processi.

Il libro RHCSA che sto leggendo descrive l'esecuzione kill 1234come l'invio di SIGQUIT. Ho sempre pensato che il comando kill senza aggiungere un interruttore per il tipo di segnale dovesse essere predefinitokill -15

SIGTERM è kill -15e SIGKILL è kill -9, giusto?

CentOS / RHEL utilizza un metodo leggermente diverso kill -15o mi sono appena sbagliato?

EDIT: kill -ldà SIGQUIT come kill -3e sembra essere associato all'uso della tastiera per terminare un processo. man 7 signalafferma anche che SIGQUIT è kill -3, quindi posso solo supporre che il mio libro sia sbagliato nel dichiarare che SIGQUIT è kill -15predefinito.

Risposte:


13

No, non sono gli stessi. L'azione predefinita per entrambi è terminare il processo, ma SIGQUITscarica anche il core. Vedi ad esempio il pagina man di Linuxsignal(7) . killper impostazione predefinita invia SIGTERM, quindi posso solo immaginare che la menzione di SIGQUIT come predefinito sia davvero solo un errore. Tale impostazione predefinita è in POSIX , così come i numeri per SIGTERM, SIGKILL e SIGQUIT.


1
Si. Penso che il libro sia sbagliato perché elenca anche SIGQUIT come -15. Il segnale -15 è un modo così consolidato di terminare un processo nel mondo Linux, non c'è dubbio che sia un errore di stampa. Contrassegnerò la tua risposta come corretta. Grazie per l'espansione di ciò che fa SIGQUIT.
bitofagoob,

1

Ci sono due comandi kill, uno in procps e uno in shell. Entrambi usano SIGTERM come predefinito. Per procps kill, il comando help, page page e kill source (skill.c linea 724 nell'ultimo ramo master) dicono tutti SIGTERM, il che è bello sapere che è coerente.

Una cosa da ricordare sui segnali è che quando inizi a superare il "solito gruppo" e usi sistemi un po 'più diversi da un sistema x86 Linux potresti scoprire che i segnali non ci sono o hanno numeri diversi. procps (e probabilmente molti altri programmi) genera i numeri in fase di compilazione (essenzialmente qualunque sia il file include, cerca signum.h).

Non c'è nulla di cui preoccuparsi per SIGTERM, come dice @ilkkachu, è in POSIX.


manpage for skill dice che skill e snice sono obsoleti. Mi chiedo perché non siano stati rimossi dallo spazio utenti? Informazioni interessanti, comunque. Grazie.
bitofagoob,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.