SIGUSR2
dipende dall'architettura e può avere un valore al di fuori di 31
, 12
o 17
. Questo è descritto in man 7 signal
. Dovrai scoprire quale valore è appropriato per il tuo sistema. Di solito questo viene fatto esaminando:
/usr/include/asm/signal.h
Sul mio sistema - Ubuntu 12.04 AMD 64 - ha un valore di 12
:
#define SIGUSR2 12
Una volta che conosci il valore numerico corretto per SIGUSR2
sul tuo sistema, puoi inviare questo segnale usando:
kill -SIGNO PID
# In this case
kill -12 PID
Sulla mia macchina Linux funziona.
Ho eseguito un ciclo infinito (pid =4574), quindi ho eseguito
#!/bin/bash
kill -l | grep USR2
kill -SIGUSR2 4574
uccidi -l ha mostrato il segnale e kill -SIGUSR2 ha inviato il segnale (chiudendo il processo).
Controlla se stai eseguendo Bash o qualche altra shell (ad es. dash, busybox, ecc.)
Modo multipiattaforma per farlo:usa -s
senza SIG
prefisso. Ad esempio,:
kill -s USR2 $pid
Sembra funzionare sia su MacOS che su Linux.