path: icinga2_2.15.2-2/doc/21-development.md pidof icinga2 lldb -p $(pidof icinga2 | cut -d ' ' -f3) ``` path: icinga2_2.15.2-2/doc/21-development.md ```bash # Typically the order of PIDs is: 1) umbrella 2) spawn helper 3) main process pidof icinga2 gdb -p $(pidof icinga2 | cut -d ' ' -f3) path: icinga2_2.15.2-2/doc/21-development.md ```bash for pid in $(pidof icinga2); do gdb -p $pid -batch -ex "info threads" -ex "detach" -ex "q" > gdb_threads_${pid}_`date +%s`.log; done ``` path: icinga2_2.15.2-2/doc/21-development.md ```bash # Typically the order of PIDs is: 1) umbrella 2) spawn helper 3) main process pidof icinga2 lldb -p $(pidof icinga2 | cut -d ' ' -f3) path: icinga2_2.15.2-2/doc/21-development.md To verify that the limit has been set to `unlimited` run the following: ```bash for pid in $(pidof icinga2); do cat /proc/$pid/limits; done ``` And look for the line: path: icinga2_2.15.2-2/doc/21-development.md ```bash for pid in $(pidof icinga2); do gdb -p $pid -batch -ex "thread apply all bt full" -ex "detach" -ex "q" > gdb_bt_${pid}_`date +%s`.log; done ``` path: icinga2_2.15.2-2/doc/21-development.md pidof icinga2 gdb -p $(pidof icinga2 | cut -d ' ' -f3) ``` path: icinga2_2.15.2-2/doc/19-technical-concepts.md * child becomes the new session leader Since Icinga 2.6, there are two processes when checked with `ps aux | grep icinga2` or `pidof icinga2`. This was to ensure that feature file descriptors don't leak into the plugin process (e.g. DB IDO MySQL sockets).