web-dev-qa-db-ja.com

このスクリプトに「fetchmailが実行されているかどうかを確認する」を追加します

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 

助けてください?

2
nerdhacker
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
nerdhacker
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
1
mailq