Вы должны начинать постепенно, а затем переходить к тяжелым вещам, чтобы убить процесс, если он не хочет играть хорошо.
Сигнал SIGKILL (-9) не может быть перехвачен, и это будет означать, что любые ресурсы, удерживаемые процессом, не будут очищены.
Попробуйте сначала использовать kill SIGTERM (-15), а затем проверьте наличие процесса, выполнив kill -0 $ (cat pid). Если он все еще болтается, то непременно забейте его с -9.
SIGTERM может быть перехвачен процессом, и любой процесс, который был правильно написан, должен иметь обработчик сигнала, чтобы перехватить SIGTERM и затем очистить его ресурсы перед выходом.