ALT Linux Community general discussions
 help / color / mirror / Atom feed
From: Vladimir Karpinsky <vkarpinsky@mail.ru>
To: ALT Linux Community general discussions <community@lists.altlinux.org>
Subject: Re: [Comm] Зеркалирование по расписанию.
Date: Mon, 23 Mar 2009 09:55:49 +0300
Message-ID: <49C73275.10209@mail.ru> (raw)
In-Reply-To: <49C6974F.3060502@kalina.in.ua>

Здравствуйте!

Yura Kalinichenko пишет:
> Vladimir Karpinsky пишет:
>> Yura Kalinichenko пишет:
>>>> Насколько я понял, --- понял ещё не всё, разбираюсь, --- это не 
>>>> совсем то. У меня проблема такая: по крону раз в 15 минут 
>>>> запускается скрипт, пытающийся достучаться до удалённого ресурса и 
>>>> скачать оттуда данные. Связь, даже когда она есть, терпимая, хуже 
>>>> другое: 20 часов из 24 нет там нет электричества. Скрипт без связи 
>>>> отваливается, лок-файл удаляется, всё хорошо. Мне надо отследить 
>>>> момент, когда связь есть, и уже происходит перекачка данных, а тут 
>>>> подходит время следующего запуска скрипта: возможны разные 
>>>> неприятности при одновременной закачке, поэтому повторный скрипт 
>>>> должен обнаружить блокировку и просто отвалится, не трогая её.
>>> Так это и происходит, когда используете для блокировки функцию 
>>> test_lock. Плюс проверяется - существует ли еще процесс, создавший 
>>> блокировку, и если нет (напр. был убит по kill -9) - блокировка 
>>> перехватывается.
>>
>> Я  прошу прощения, а что такое kill -0? kill -l про сигнал 0 молчит... 
> Ну это в общем-то классика. Этот псевдосигнал используется для проверки 
> существования процесса. Вот что говорит, к примеру, info kill:

Спасибо! Странно, что нет ни в man, ни в kill -l.

>> Я до конца не понимаю смысл цикла until: ставится запрет на перезапись 
>> существующего файла и дальше зацикливаемся в попытке его перезаписать. 
>> Далее, если kill -0 успешен,
> Т.е. лок выставлен, и процесс, его создавший, активен
>> то удалять лок-файл не надо, ждём, что он процессе счёта до 10 сам 
>> уйдёт (?)
> Т.е. ожидаем (если нужно) что процесс, заблокировавший ресурс, 
> завершится сам и тогда мы выставим свою блокировку и начнем свою обработку.
>> или мы его убьём в следующей итерации until.
> Не его - себя. Если за определенное время процесс, ранее заблокировавший 
> ресурс, его не освободил - обычно ждать далее не имеет смысла, и мы 
> выходим в расчете на следующий запуск. Хотя иногда (но не в вашей 
> ситуации) может иметь смысл ожидать до победного конца.

Понял, вроде.

>> Полностью согласен, но мои эксперименты с выдёргиванием сетевого шнура 
>> из компьютера, с котрого уже качает wget, показал, что wget не 
>> отваливается, несмотря на наличие таймаутов.
> Странно. Только что проверил: wget --timeout=3 -c 'http://...' 
> благополучно разрывается через 3 сек. после выдергивания шнура либо 
> укладывания интерфейса.

Попробую ещё раз на днях... Ставил  ключи -t 5 -T 5: т.е. 5 попыток по 5 
секунд. У меня не отваливался wget, только если сеть рвалась уже имеено 
в момент закачки. Во всех остальных случаях (подключение, получение 
списка и т.п.) всё отваливалось нормально.

-- 
	С уважением,
		Владимир.


  reply	other threads:[~2009-03-23  6:55 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-10  9:34 Vladimir Karpinsky
2008-12-10  9:53 ` Yuri Bushmelev
2008-12-10  9:56 ` Alexey Borovskoy
2008-12-10 10:43   ` Vladimir Karpinsky
2008-12-10 13:16     ` Alexey Borovskoy
2008-12-10 15:18       ` Vladimir Karpinsky
2009-03-21 20:27   ` Vladimir Karpinsky
2009-03-21 21:57     ` Yura Kalinichenko
2009-03-22  6:51       ` Vladimir Karpinsky
2009-03-22 16:38         ` Yura Kalinichenko
2009-03-22 18:51           ` Vladimir Karpinsky
2009-03-22 19:53             ` Yura Kalinichenko
2009-03-23  6:55               ` Vladimir Karpinsky [this message]
2009-03-23  7:20                 ` Andrey Rahmatullin
2009-03-25 19:29       ` Vladimir Karpinsky
2009-03-25 19:32         ` Andrey Rahmatullin
2009-03-25 19:52           ` Vladimir Karpinsky
2009-03-25 21:42         ` Yura Kalinichenko
2009-03-26  5:50           ` Vladimir Karpinsky
2009-03-26 10:06           ` Sergey Vlasov
2009-03-26 18:21             ` Yura Kalinichenko
2008-12-10 17:00 ` Vladimir Karpinsky
2008-12-10 17:18   ` Denis Nazarov
2008-12-10 17:36     ` Vladimir Karpinsky
2008-12-10 19:24   ` Sergey Vlasov
2008-12-11  5:40     ` Vladimir Karpinsky
2008-12-13 12:19 ` Vladimir Karpinsky
2008-12-13 13:28   ` Костарев Алексей
2008-12-13 15:53     ` Vladimir Karpinsky
2008-12-14 17:37       ` Michael Shigorin
2008-12-14 18:49         ` Vladimir Karpinsky
2008-12-15  7:33           ` Костарев Алексей
2008-12-15  7:58             ` Vladimir Karpinsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49C73275.10209@mail.ru \
    --to=vkarpinsky@mail.ru \
    --cc=community@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git