SIGSTOPe SIGKILLsono due segnali che non possono essere catturati e gestiti da un processo. SIGTSTPè come SIGSTOPtranne che può essere catturato e gestito.
I segnali SIGSTOPe SIGTSTPfermano un processo nelle sue tracce, pronto per SIGCONT. Quando si invia quel processo a SIGTERM, il processo non è in esecuzione e quindi non può eseguire il codice per uscire.
(Ci sono anche SIGTTINe SIGTTOU, che sono segnali generati dal livello TTY quando un lavoro in background tenta di leggere o scrivere sul terminale. Possono essere catturati ma altrimenti fermeranno (sospenderanno) il processo, proprio come SIGTSTP. Ma ora sto andando ignorare quei due per il resto di questa risposta.)
Il tuo CtrlZinvia il processo a SIGTSTP, che sembra non essere gestito in alcun modo in modo particolare da rsyslogd, quindi semplicemente sospende il processo in sospeso SIGCONTo SIGKILL.
La soluzione qui è anche quella di inviare il SIGCONTtuo in SIGTERMmodo che il processo possa ricevere e gestire il segnale.
Esempio:
sleep 999 &
# Assume we got PID 456 for this process
kill -TSTP 456 # Suspend the process (nicely)
kill -TERM 456 # Terminate the process (nicely). Nothing happens
kill -CONT 456 # Continue the process so it can exit cleanly
La documentazione per la GNU C Library lo spiega abbastanza bene, penso (il mio momento saliente):
Mentre un processo viene interrotto, non è possibile inviare più segnali fino a quando non viene continuato , tranne SIGKILLsegnali e (ovviamente) SIGCONTsegnali. I segnali sono contrassegnati come in sospeso, ma non trasmessi fino al proseguimento del processo. Il SIGKILLsegnale provoca sempre l'interruzione del processo e non può essere bloccato, gestito o ignorato. È possibile ignorare SIGCONT, ma provoca sempre comunque il proseguimento del processo se viene interrotto. L'invio di un SIGCONTsegnale a un processo comporta l'eliminazione di tutti i segnali di arresto in sospeso per tale processo. Allo stesso modo, tutti i SIGCONTsegnali in sospeso per un processo vengono eliminati quando riceve un segnale di arresto
kill -15hai già inviato".