Назад | Перейти на главную страницу

убить как родительский, так и дочерний процессы

Я запускаю сценарий bash в качестве фонового задания. Сценарий bash вызывает исполняемый файл, требующий много времени. Если я не ошибаюсь, запуск сценария bash является родительским процессом, а запуск исполняемого файла - дочерним процессом.

(1) когда я смотрю на вывод top, он показывает только дочерний процесс, который запускает исполняемый файл, но не показывает родительский процесс, который запускает скрипт. Просто интересно, почему бы не показать оба? А как показать оба?

(2) Теперь я хочу остановить все выполнение, убив родительский процесс, который является фоновым заданием.

kill -9 $(jobs -p)

Терминал показывает, что выполнение сценария bash прекращено. Но запуск исполняемого файла все еще зависает на выходе top. Мне просто интересно, как убить и родительский, и дочерний процесс?

Спасибо и привет!

Процесс bash должен по-прежнему отображаться в списке процессов, за исключением того, что, поскольку он обычно ничего не делает в этой ситуации, он, вероятно, будет в самом низу «верхнего» списка. Попробуйте ps или еще лучше pstree, чтобы проанализировать вашу ситуацию.

Используйте отрицательный PID, чтобы убить группу процессов. Попытайся избежать -9 без крайней необходимости.