Sto sviluppando un'applicazione e mi piacerebbe stampare alcune statistiche di runtime sulla console su richiesta. kill
e i segnali mi sono venuti immediatamente in mente.
Leggere i segnali Unix su Wiki SIGINFO
sembra la strada da percorrere perché:
- È destinato a questi scopi
- Non termina il processo se il gestore del segnale non è implementato (contrariamente a
SIGUSRx
- vedere qui )
Tuttavia, controllando l'output di kill -l
, sembra che il mio server non abbia implementato questo segnale.
Le mie domande sono:
- Perché
SIGINFO
manca sul mio sistema? È assente su tutti i sistemi GNU Linux? - Esiste un modo semplice (ovvero nessuna ricompilazione kernel / glibc) per abilitare questo segnale? Se nessuno, quale sarebbe il modo difficile?
- Quale segnale alternativo potrei usare per i miei scopi che non provocherebbe effetti collaterali se non gestito dal processo target? (Ne presumo già nessuna poiché non sono riuscito a trovare nessun altro segnale adatto sul manuale di glibc )
Metainfo Linux:
Linux whatever 3.18.2-2-ARCH #1 SMP PREEMPT Fri Jan 9 07:37:51 CET 2015 x86_64 GNU/Linux
Aggiornamento: sto ancora cercando ulteriori informazioni sul motivo per cui questo segnale è condizionatamente escluso da altri sistemi diversi da BSD (vedere i commenti di seguito). Il segnale sembra essere abbastanza utile per molti scopi, quindi è difficile per me credere che sia solo una questione di capriccio - quindi qual è il vero showtopper per questo segnale disponibile su Linux?
dd
con quello sul mio Mac. ^T
durante l' dd
esecuzione non fa nulla sulla macchina Linux - aggiornerò la domanda di conseguenza.
^T
apparire nella produzione distty -a
?