Я занимаюсь разработкой приложения и хочу, чтобы оно выводило статистику времени выполнения на консоль по требованию. kill
и сигналы сразу же пришли мне в голову.
Чтение сигналов Unix в Wiki, SIGINFO
похоже, путь, потому что:
- Он предназначен для этих целей
- Не завершает процесс, если обработчик сигнала не реализован (в отличие от
SIGUSRx
- см. Здесь )
Однако, проверяя вывод kill -l
, кажется, мой сервер не реализовал этот сигнал.
Мои вопросы:
- Почему
SIGINFO
отсутствует в моей системе? Это отсутствует во всех системах GNU Linux? - Есть ли простой (т.е. без перекомпиляции ядра / glibc) способ включить этот сигнал? Если нет, какой будет трудный путь?
- Какой альтернативный сигнал я мог бы использовать для своих целей, который не вызвал бы побочных эффектов, если бы не обрабатывался целевым процессом? (Я уже предполагаю, что нет, так как не смог найти какой-либо другой подходящий сигнал в руководстве 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
Обновление: я все еще ищу дополнительную информацию о том, почему этот сигнал условно исключен из других систем, кроме BSD (см. Комментарии ниже). Сигнал, по-видимому, весьма полезен для многих целей, поэтому мне трудно поверить, что это просто вопрос прихоти - так в чем же реальная демонстрация того, что этот сигнал доступен в Linux?
dd
с этим на моем Mac. ^T
во время dd
выполнения ничего не делает на машине Linux - я обновлю вопрос соответственно.
^T
в выводеstty -a
?