= Сообщение: 2984 из 8555 ========================================= RU.LINUX = От : Valentin Davydov 2:5020/400 21 Jun 16 17:57:48 Кому : Eugene Muzychenko 21 Jun 16 17:57:48 Тема : Re: Обеспечение единственности экземпляра скрипта FGHI : area://RU.LINUX?msgid=<1187505107@ddt.demos.su>+6813e3fc На : area://RU.LINUX?msgid=2:5000/14+57694f07 = Кодировка сообщения определена как: CP866 ================================== Ответ: area://RU.LINUX?msgid=2:5000/14+576979f7 ============================================================================== From: Valentin Davydov <sp@m.davydov.spb.su>
> From: Eugene Muzychenko <Eugene.Muzychenko@f14.n5000.z2.fidonet.org> > Date: Tue, 21 Jun 2016 20:21:05 +0300 > >Сделал под OpenWRT скрипт под busubox/ash, ежеминутно запускаемый через cron. В >некоторых случаях он выполняется дольше минуты (из-за ожиданий), поэтому на >входе нужно проверить, не работает ли другой экземпляр скрипта.
Для этого придуман механизм pid-файлов. То есть файл где-нибудь в /var/run, имя которого скрипту известно, и в который, по традиции, он пишет свой PID. Дальше с этими файлами можно делать разные вещи, например, лочить их, убивать указанные там процессы и т.д.
>Классический способ с флаговым файлом мне не нравится из-за неатомарности >операций, чреватой глюками.
flock(1) вполне атомарен. Т.е. пока жив процесс, залочивший файл, другой процесс его залочить не может.