|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Lev Walkin 2:5020/400 28 Apr 2003 17:30:19 To : Andrey Ostanovsky Subject : Re: timelimit -------------------------------------------------------------------------------- Andrey Ostanovsky wrote: > Hello, Lev! > > Понедельник Апрель 28 2003, Lev Walkin изволил/a написать Andrey Ostanovsky: > > >> >> Hикто ведь не мешает, найдя нужный pid, проверить - есть ли > >> >> такой процесс, и как его зовут и т.д. > >> LW> .pid должен быть залочен процессом на все время его жизни. Если > >> LW> пид разлочен - значит процесс умер. > >> Как это проверить из скрипта не пытаясь удалить файл? > > LW> А вот для этого программа не только должна снимать лок при выходе (он > LW> так и так будет снят операционкой при cleanup), но и писать в файл > LW> что-то типа строки статуса. тогда можно будет натравливать -s или > LW> grep. > > В смысле "статус"? Hомер процесса писать, или что-то типа "точка 12 пройдена"? Кажется удобной следующая конвенция: 2. Процесс в ходе работы держит .pid файл открытым и залоченным. Содержимое файла: "<pid>\n". 3. Когда процесс начал завершаться (а это для некоторых процессов - болезненный и мучительный процесс, который может продолжаться ощутимое время), он опустошает файл, но не снимает лок. 4. Когда процесс завершился, лок снимается. 1. Когда процесс стартует, он пытается залочить .pid-файл. Если у него это не получается, то: 1.1 если файл не пустой, то процесс выходит с криком "там кто-то есть". 1.2 если файл пустой, процесс продолжает попытки залочить файл в течение какого-то времени, после чего вываливается с диагностикой "кто-то не хочет умирать за разумное время". В шелле детектирование того, работает процесс или [почти] уже нет, происходит через test -s на .pid-файл. Очевидный недостаток - из шелла сложно продетектировать, завершается ли процесс, или уже умер. Есть два варианта: 1. Hичего не делать. Если шелл лишний раз запустит процесс, ничего страшного не произойдет. 2. Писать что-то типа "finishing\n" на этапе завершения. Hо тут тоже есть некоторые проблемы. -- Lev Walkin vlm@netli.com --- ifmail v.2.15dev5 * Origin: Netli, Inc. (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/7591746ecf6e.html, оценка из 5, голосов 10
|