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