2016-11-08 2 views
2

Я пытаюсь сделать операцию в Linux пытаюсь сжечь процессор, используя скорость OpenSSLКак убить дочерние процессы в Bash?

это мой код от Netflix обезьяньей армии

#!/bin/bash 
# Script for BurnCpu Chaos Monkey 

cat <<EOF> /tmp/infiniteburn.sh 
#!/bin/bash 
while true; 
    do openssl speed; 
done 
EOF 

# 32 parallel 100% CPU tasks should hit even the biggest EC2 instances 
for i in {1..32} 
do 
    nohup /bin/bash /tmp/infiniteburn.sh & 
done 

так это Netflix обезьяньей армии код, чтобы сделать выгорание центрального процессора, это выполняет правильно, но проблема, я не могу убить всех 32 процессов, я попробовал все

pkill -f pid/process name 
killall -9 pid/process name 
etc., 

единственным успешным способом я убил процесс через убийство его помощью пользователь

pkill -u username 

Как я могу убить этот процесс без использования имени пользователя?

любая помощь очень ценится

+0

вы пробовали 'убить -9 pid'? –

+0

yes Я пробовал, что не повезло –

+0

Возможно, связано/может быть дубликат: [Лучший способ убить все дочерние процессы] (http://stackoverflow.com/q/392022). Тесно связано с [Как убить все подпроцессы оболочки?] (Http://stackoverflow.com/q/2618403/) Кто-то с большим опытом Bash, тогда мне придется решать, кто понимает тонкости. – jww

ответ

1

наконец, я нашел решение на мой собственный вопрос,

kill -- -$(ps -o pgid= $PID | grep -o [0-9]*) 

где PID является идентификатор процесса любого из одного процессов, запущенных, это работает отлично, но я открыт, чтобы услышать любой другой варианты

источник: http://fibrevillage.com/sysadmin/237-ways-to-kill-parent-and-child-processes-in-one-command

1

Убийство процесс автоматически не убивает своих детей. Убийство вашего скрипта bash не приведет к уничтожению процессов openssl speed.

Вы можете использовать более широкую сеть с помощью своего вызова kill, что и делает то, что вы делаете с pkill -u. Или вы можете использовать trap в своем скрипте и добавить обработчик ошибок.

cleanup() { 
    # kill children 
} 

trap cleanup EXIT 
+0

Вы можете использовать более широкую сеть с помощью вызова kill ??? не могли бы вы предоставить более подробную информацию об этом, –

Смежные вопросы