|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Vassily Kiryanov 2:5054/36 17 Dec 2003 12:06:07 To : Rashid N. Achilov Subject : Узнать из программы, что запущена другая копия этой программы -------------------------------------------------------------------------------- 17 Dec 03 08:20, Rashid N. Achilov wrote to Andrey Ostanovsky: >> создание первой копией программы при запуске файл-флага нулевой >> длины. При втором запуске проверка его наличия. По окончании работы >> первой копии - она удаляет свой флаг-файл. RNA> Похоже, вопрос был поставлен некорректно. Lock-файл создается. Если RNA> программа сдохла, lock-файл остался. Как решить - lock-файл RNA> принадлежит уже сдохшей RNA> программе и его можно выносить, или существует работающая копия? Так не Lock файл, а PID файл лучше делать. Проверяешь есть процесс с таким ИД и если нету - смело убивай файл и загружайся. А если есть такой процесс, то требуется дополнительная проверка. Процессу с этим значением PID посылаешь некий сигнал, ну хоть USR2, к примеру. В проге твоей должен быть обработчик этого сигнала, который как-то даст понять, что сигнал пойман и обработан именно так, как это делает твоя программа. Hапример в файл /tmp/test.answer.$PID положит строчку "Cool & rulez super-program $ProgName version $ProgVersion by Rashid". Через пару-тройку секунд после посылки сигнала проверять наличие и содержимое того файла. Всего хорошего. "За верную и прибыльную дружбу!" (c) Яго. Vassily --- * Origin: И бьется против геноцида Вася, и против Васи геноцид. (2:5054/36) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.unix.bsd/18513fe03aa3.html, оценка из 5, голосов 10
|