私はこのようなbashスクリプトを持っています:
#!/bin/bash
while true; do
sudo tcpdump -i eth0 -w dump.pcap -c 1500 &
chromium-browser --app http://domain.com &
sleep 60
killall chromium-browser
sudo killall tcpdump
# do some stuff with pcap file
# it basically converts the pcap to plain text using tshark
# then a PHP script parses the plain text
sleep 240
done
正常に動作します。しかし、場合によっては、何らかの理由で何も強制終了されず、スクリプトがそのループステップでスタックします。実際には何もしておらず、リソースも使用していません。スクリプトは何かが殺されるのを待っているようです。
tcpdumpによってキャプチャされたパケットを制限しようとしましたが、機能しませんでした。tcpdumpは、強制終了せずに正常にジョブを終了しますが、スクリプトはクロムを強制終了せず、残りのコードを続行しません。
ステップに時間がかかりすぎているかどうかを検出し、すべてを強制終了して次のステップに進む方法はありますか?
アップデート
Theit is a long code
tsharkを使用してpcapファイルをプレーンテキストに変換し、PHPスクリプトがプレーンテキストを解析します。tsharkもPHPスクリプトも呼び出されないため、この部分では問題は発生しません。その前にすべてが停止します。
睡眠を増やす
問題を再現しません。