Уничтожьте процесс, когда он остановится для создания далее вывода

Существует Дуга Linux запись Wiki, сравнивающая 13 различных Менеджеров окон Мозаичного размещения, подобным сетке способом, здесь на Дуге Linux Wiki. Возможно, это был бы hepful.

Я еще не судил ни одного из них, лично, но планирую к в ближайшем будущем, когда у меня есть некоторое время, таким образом, я следую за этим потоком тесно также.

5
25.07.2011, 14:12
3 ответа

Так следовавший с "небольшим" сценарием тайм-аута, который проверяет размер файла журнала, чтобы определить, работает ли процесс все еще. Не симпатичный, но действительно помогал:

#!/bin/sh
TIMEOUT=$1
FILE=$2
PID=$3
if [ -z "$PID" ]
then
   echo $0 timeout file pid
   echo "     e.g. 60 /tmp/log 16325"
   exit
fi
echo "stalekill: timeout=$TIMEOUT file=$FILE pid=$PID"    

sleep 1

SIZE=0
while true
do
   sleep 3

   NEWSIZE=$(stat -c%s "$FILE")
   if [ "$NEWSIZE" -eq "$SIZE" ]
   then
      echo "stalekill '$FILE' unchanged; $SIZE"

      sleep $TIMEOUT
      NEWSIZE=$(stat -c%s "$FILE")

      if [ "$NEWSIZE" -eq "$SIZE" ]
      then
         kill $PID || sleep 2 && kill -9 $PID
         exit
      fi
      echo "stalekill '$FILE' changed; $SIZE..$NEWSIZE"
   else
      echo "stalekill '$FILE' changed; $SIZE..$NEWSIZE"
   fi
   SIZE=$NEWSIZE 
done

Вызванный следующим образом (в цикле):

./offlineimap.py >> ./log.txt 2>&1   &   stalekill 25 ./log.txt $!

Синхронизация не чрезмерно профессиональна, и было бы еще более хорошо, если бы это также проверило, завершил ли процесс уже себя; но в основном сделал подвиг.

Но тем не менее, если кто-либо знает другое или больше стандартизированного решения этой задачи: accepted answer tick still available.

2
27.01.2020, 20:42
  • 1
    я нашел Ваше сообщение с той же (точной) проблемой. Это - все еще Ваш последний сценарий / решение? –  CPBL 10.01.2015, 20:17
  • 2
    @CPBL Извините, это слишком длинно назад :| Переключенный на обертку Perl IIRC (не имеют его вокруг), но затем другая выборка IMAP приближается позже. Между тем просто стал довольным клиентом IMAP, опрашивающим. –  mario 10.01.2015, 21:10
  • 3
    Просто примечание стороны, производя вывод все еще не означает, что синхронизирует правильно, поскольку вывод может быть только ошибками/предупреждениями. В то время как моя установка, конечно, также испорчена, я использую рычаг синхронизации сообщения, чтобы записать последнюю метку времени синхронизации и проверить это. –  user640916 26.12.2017, 16:11

Дайте попытку http://pyropus.ca/software/getmail/. Можно установить тайм-аут для каждой учетной записи IMAP.

1
27.01.2020, 20:42
  • 1
    Спасибо. Это - то, что я попробовал сначала. Но оба getmail и fetchmail не восстанавливайтесь с потери соединения. Они постоянно повторно выбирают все письма для IMAP4 и POP3. –  mario 25.07.2011, 22:52
  • 2
    Проблемой является Gmail, они не используют стандартные серверы. У меня была та же проблема для POP3. Вы должны удалить файл "~/.getmail/oldmail-imap.gmail.com-993-you@gmail.com" (или подобный) для не загружают снова те же письма после проблем соединения. –  Rufo El Magufo 25.07.2011, 23:09

Вы могли бы хотеть смотреть на Monit, который может, вероятно, сделать то, что Вы ищете.

0
27.01.2020, 20:42
  • 1
    Это более предназначается для системы контроля deamons, не для данного случая обрабатывает. И в то время как это имеет a IF SIZE CHANGED протестируйте, не соответствуйте моему случаю. Интересный, тем не менее. –  mario 25.07.2011, 17:43

Теги

Похожие вопросы