Как узнать, какой процесс отправил сигнал HUP моему процессу node.js?

Как узнать, какой процесс отправил сигнал HUP моему процессу node.js?

Каждый понедельник в 9 утра UTC что-то посылает HUPсигнал моему процессу node.js (и я думаю, что HUP отправляется всем процессам, а не только моему). Как мне узнать, какой процесс отправил сигнал HUPмоей программе? В моей программе есть обработчик HUP, который заставляет ее перезапускаться (для перезагрузки конфигурации), поэтому каждый понедельник в 9 утра мой производственный стек перезапускается сам по себе (но продолжает работать, так что все хорошо, просто это очень раздражает).

У меня такое чувство, что это делает systemd, просто я не знаю, какая часть systemd это делает. Есть идеи?

Это установка Debian 11.7.

решение1

Вы можете сделать это с помощьюeBPF:

sudo dnf install bcc-tools
sudo /usr/share/bcc/tools/killsnoop

Вот как это выглядит при отправке SIGHUP(-1) из процесса с PID1221229, который является bashоболочкой, в которой я запускаю kill -1 1221227процесс с PID1221227.

[mvutcovi@laptop-rh-old ~]$ sudo /usr/share/bcc/tools/killsnoop
TIME      PID    COMM             SIG  TPID   RESULT
01:38:35  1221229 bash             1    1221227 0
^C[mvutcovi@laptop-rh-old ~]$

Другой способ, на этот раз сftrace:

sudo dnf install trace-cmd
sudo trace-cmd record -e signal
sudo trace-cmd report

Здесь я отправляю SIGHUP процессу sleepиз bashоболочки:

[mvutcovi@laptop-rh-old ~]$ sudo trace-cmd record -e signal
[mvutcovi@laptop-rh-old ~]$ sudo trace-cmd report
version = 7
cpus=8
           sleep-1221703 [001] 1248579.487042: signal_deliver:       sig=9 errno=0 code=0 sa_handler=0 sa_flags=0
           sleep-1221703 [001] 1248579.487362: signal_generate:      sig=17 errno=0 code=2 comm=bash pid=1221675 grp=1 res=0
[mvutcovi@laptop-rh-old ~]$ sudo rm trace.dat

Связанный контент