У меня есть сценарий оболочки, в котором я порождаю несколько дочерних процессов (используя &
) для параллельного выполнения некоторых действий. Я добавил логику, чтобы убедиться, что не более 10 процессов работают параллельно.
Общее количество процессов составляет около 3000. И из них есть один огромный процесс, который занимает более 4 часов. Другие процессы меньше и занимают не более нескольких минут.
Я использовал команду wait
в конце скрипта, чтобы убедиться, что все процессы bg завершены до выхода из скрипта.
Но я обнаружил, что длительный процесс все еще выполняется в фоновом режиме, пока родительский скрипт завершил выполнение. Ppid процесса теперь отображается как «1».
Может ли кто-нибудь помочь мне понять, что здесь происходит неправильно? Как убедиться, что дочерний процесс не перестал функционировать и остается подключенным к родительскому процессу.