Как убить все подгруппы, но не убивая ток -процесс оболочкиLinux

Ответить
Anonymous
 Как убить все подгруппы, но не убивая ток -процесс оболочки

Сообщение Anonymous »

Я хочу убить все суб -процессы, начатые в текущей оболочке рекурсивно , но не убивайте сам текущий процесс оболочки.

Код: Выделить всё

#!/bin/bash

echo "Start all child processes in background"

(long_running_process_1.sh &)
(    long_running_process_1.1_started_by_long_running_process_1.sh &)
(    long_running_process_1.2_started_by_long_running_process_1.sh &)
(    long_running_process_1.3_started_by_long_running_process_1.sh &)
(long_running_process_2.sh &)
(    long_running_process_2.1_started_by_long_running_process_2.sh &)
(    long_running_process_2.2_started_by_long_running_process_2.sh &)
(    long_running_process_2.3_started_by_long_running_process_2.sh &)
(long_running_process_3.sh &)
(...)
(long_running_process_n.sh &)

echo "Kill all subprocesses started within this shell"

how_to_kill_all_subprocesses_here "?"

echo "All sub processes have been killed!"
echo "Continue to run other commands"
echo "Hello world"
< /code>
Я попробовал "pkill
"или" «Метод, упомянутый в следующем сообщении, но он убивает саму оболочку, которая не ожидается: https://unix.stackexchange.com/question ... ash-script написал/>>

Код: Выделить всё

pkill -P $$
# or
pstree -A -p $$ | grep -Eow "[0-9]+" | xargs kill
< /code>
Я попытался получить результат, а затем анализировать результат, но я не могу правильно установить результат: < /p>
# This only get a subshell $$ not current shell $$
result="$(pstree -A -p $$ | grep -Eow "[0-9]+")"
< /code>
Как реализовать команду "how_to_kill_all_subprocesses_here
"в сценарии Demo Bash?

Подробнее здесь: https://stackoverflow.com/questions/796 ... ll-process
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»