0

スクリプト内で開始しtcpdumpていますが、同じスクリプトからも強制終了しています。だから私は現在、killallこれにコマンドを使用しています: スクリプトはudevルールから実行されます: これは、 を終了する必要があるセクションですtcpdump: さらに-s SIDKILL、これも役立つと読んだので、 も使用します。

killallを終了しない問題は何ですかtcpdump。スクリプトを手動で開始すると、すべて正常に動作します。

 if [[ "$pid1" != "" ]];then
          sudo killall -s SIGKILL tcpdump
          sh /tmp/scripts/autoumount.sh &
          sudo kill -9 $$
          echo "autodump stopped"
4

1 に答える 1

2

同じスクリプトから tcpdump を開始しているため、killall.

複数のバックグラウンド プロセスを実行している場合は、次のように配列を使用します。

pids=( )                 # initialize empty array
tcpdump & pids+=( "$!" ) # extend said array

...後で、それらの PID を強制終了できます。

kill "${pids[@]}"
于 2015-12-21T15:55:47.137 に答える