while ! postqueue -p | grep -q empty; do
sleep 1
done
killall wvdial
このスクリプトは、マイメールキューが空であることを確認し、モデムを切断します。ここで、fetchmailが実行されていることを確認する機能も追加したいと思います。これをどのように開発するかはよくわかりませんが、以下の例のように見えることがわかります。
while ! postqueue -p | grep -q empty && "fetchmail process is not running"; do
助けてください?
答え1
echo "Checking mail queue and fetchmail process"
while ! postqueue -p | grep -q empty && ps -C fetchmail > /dev/null; do
echo "There is still mail in queue or fetchmail is still working"
sleep 1
done
echo "Terminating the connection"
killall wvdial
答え2
while [ "`find /var/spool/postfix/{deferred,active,maildrop}/ -type f | wc -l`" -gt 0 ] ||
[ "`ps -C fetchmail -o pid= | wc -l`" -gt 0 ]; do
sleep 5
done
killall wvdial
あるいは、より少ない数のプロセスを作成することもできます。
while [ -n $("find /var/spool/postfix/{deferred,active,maildrop}/ -type f") ] ||
[ -n $("ps -C fetchmail -o pid=") ]; do
sleep 5
done
killall wvdial