Вы можете использовать систему, как флаг.при запуске каждого фонового процесса сохраняйте отдельное flag_processId = 0 для этого процесса, а при успешном завершении этого процесса обновите этот флаг до 1. И если этот процесс получит какую-либо ошибку в промежутке и если она не будет устранена, обновите его до не завершенного(например, flag = 2).
Этим вы можете динамически отслеживать этот фоновый процесс.
или для определения причины убийства вы также можете использовать ведение журнала в файл журнала.
после каждого шага в этом журнале процесса завершение этого шага в файле журнала, таким образом, вы можете получить информацию о том, где ваш процесс уничтожается.