Como descobrir qual processo enviou um sinal HUP para meu processo node.js?

Como descobrir qual processo enviou um sinal HUP para meu processo node.js?

Toda segunda-feira, às 9h UTC, algo envia um HUPsinal para meu processo node.js (e acho que o HUP está sendo enviado para todos os processos, não apenas para o meu). Como descubro qual processo enviou o HUPsinal para meu programa? Meu programa tem um manipulador HUP que o faz reiniciar (para recarregar a configuração), então toda segunda-feira às 9h, minha pilha de produção reinicia sozinha (mas continua funcionando, então está tudo bem, é super chato).

Tenho a sensação de que é o systemd que está fazendo isso, só não sei qual parte do systemd está fazendo isso. Alguma ideia?

É uma instalação do Debian 11.7.

Responder1

Você pode fazer isso comeBPF:

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

Aqui está como fica ao enviar SIGHUP(-1) do processo com PID1221229, que é o bashshell onde executo o kill -1 1221227processo com 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 ~]$

Outra forma, desta vez comrastreamento:

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

Aqui estou enviando SIGHUP para um sleepprocesso a partir de um bashshell:

[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

informação relacionada