endaaman.com

2015-06-28

Tips

ShellScriptで、ジョブをバックグランドで複数起動して中断時に全部殺すやつ

道連れ式

基本的にユーザー入力があるまで終わらないやつを複数起動するとき、たとえば複数ポートでサーバーを起動しないといけないものをテストするときなど、何個もシェル窓を開けたくはない場合に有効かも。

#!/bin/bash
trap 'kill $(jobs -p)' EXIT
./server1 &
./server2 &
./server3 &
wait `jobs -l %1| awk '{print $2}'`

問題点:最初のやつが死ぬと、スクリプトが終わって他のも全部死ぬ。


©2024 endaaman.com