Tworzę aplikację i chciałbym, aby na żądanie drukowała na konsoli niektóre statystyki środowiska wykonawczego. kill
i sygnały natychmiast przyszły mi do głowy.
Odczytywanie sygnałów uniksowych na Wiki SIGINFO
wydaje się właściwą drogą, ponieważ:
- Jest przeznaczony do tych celów
- Nie przerywa procesu, jeśli procedura obsługi sygnału nie jest zaimplementowana (w przeciwieństwie do
SIGUSRx
- patrz tutaj )
Jednak po sprawdzeniu wyjścia kill -l
wydaje się, że mój serwer nie ma zaimplementowanego tego sygnału.
Moje pytania to:
- Dlaczego
SIGINFO
brakuje w moim systemie? Czy nie ma go we wszystkich systemach GNU Linux? - Czy istnieje prosty (tj. Brak rekompilacji jądra / glibc) sposób na włączenie tego sygnału? Jeśli nie, jaka byłaby trudna droga?
- Jakiego alternatywnego sygnału mógłbym użyć do swoich celów, które nie spowodowałyby żadnych skutków ubocznych, gdyby nie zostały przetworzone przez proces docelowy? (Już nie zakładam, ponieważ nie mogłem znaleźć innego odpowiedniego sygnału w instrukcji glibc )
Linux metainfo:
Linux whatever 3.18.2-2-ARCH #1 SMP PREEMPT Fri Jan 9 07:37:51 CET 2015 x86_64 GNU/Linux
Aktualizacja: wciąż szukam więcej informacji na temat tego, dlaczego ten sygnał jest warunkowo wykluczony z systemów innych niż BSD (patrz komentarze poniżej). Sygnał wydaje się bardzo przydatny do wielu celów, więc trudno mi uwierzyć, że to tylko kwestia kaprysu - więc jaki jest prawdziwy showstopper dla tego sygnału w Linuksie?
dd
z tym na moim Macu. ^T
podczas dd
wykonywania nic nie robi na maszynie z Linuksem - odpowiednio zaktualizuję pytanie.
^T
pojawia się na wyjściustty -a
?