2016-11-08 8 views
2

は、私は、これはNetflixのサル軍からの私のコードですopensslのスピードBashで子プロセスを削除するには?

を使用して、CPUを焼くしようとしているLinuxでの操作を実行しようとしてい

#!/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 

ので、これは火傷CPU、これを行うにはNetflixのサル軍のコードがあります適切に実行しますが、問題は、私はすべての32個のプロセスを殺すことができないで、私は、プロセスを殺した唯一成功した方法は、ユーザ

を経由して、それを殺しているすべて

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

を試してみました

pkill -u username 

ユーザー名を使用せずにこれらのプロセスを強制終了するにはどうすればよいですか?

任意のヘルプは大幅に自動的にその子を殺さないプロセスを強制終了

+0

あなたは '殺す-9 pid'を試してみましたか? –

+0

はい私は運がないことを試みました –

+0

多分関連しているか重複しています:[すべての子プロセスを殺す最良の方法](http://stackoverflow.com/q/392022)。密接に関連している[どのようにシェルのすべてのサブプロセスを殺すか?](http://stackoverflow.com/q/2618403/)Bashの経験が豊富な人は、微妙なことを理解している人が決定する必要があります。 – jww

答えて

1

を高く評価しています。あなたのbashスクリプトを終了しても、openssl speedプロセスは終了しません。

killコールでより広いネットをキャストすることができます。これはpkill -uで行うことです。または、スクリプトにtrapを使用し、エラーハンドラを追加することもできます。

cleanup() { 
    # kill children 
} 

trap cleanup EXIT 
+0

キルコールでより広いネットをキャストすることができますか?あなたはこれについてもっと多くの情報を提供してください、 –

関連する問題