Uma maneira seria envolver strace
em torno do processo de inicialização, o que envolve envolver systemd
em si ou alterar o mongod.service
para chamar um wrapper strace
apropriado que, por sua vez, inicia mongod
. Prós: não são necessários módulos do kernel. Contras: atrasará as coisas, editará o arquivo mongod
service (lembre-se de desfazê-las ...) ou poderá interferir no problema de maneiras desconhecidas.
#!/bin/sh
exec strace -ff -o /root/lookatthese -e trace=process /mongodb/startup/command/here
Outra maneira seria usar sysdig
ou SystemTap
, que exigem módulos do kernel, mas oferecem log mais eficiente do que está acontecendo sem precisar inserir strace
entre as etapas usuais:
# sysdig 'evt.type = execve'
...
Mostraria todas as chamadas execve
enquanto você executava o comando de inicialização usual; para incluir o usuário use algo como
# sysdig -p \
'%evt.time %proc.name[%proc.pid] uid=%user.uid ppid=%proc.ppid %proc.exeline' \
'evt.type = execve'
ou um poderia capturar mais dados (dependendo de quão ocupado o sistema é) e analisar esse arquivo de saída em detalhes.