alexhemp
Новичок
Узнать - запущен ли процесс (Unix)
Итак условия - имеется некоторое количество различных "фоновых" процессов, запускаемых по крону.
Они зависят друг от друга, и каждый из них не должен
1. Запускаться повторно
2. Запускаться если "конкурирующий" процесс уже работает
3. Более "важный" процесс должен уметь "попросить" процесс менее "важный" завершиться.
Сейчас сделано с использованием спец. флагов в БД, процессы на каждой итерации считывают "флаги" и действуют согласно им. Но это увы не работает, т.к. периодически процессы "падают". Падают редко, раз может в сутки. Но в результате, флаг активности остается и вся остальная работа не делается.
Проблема - как определить что процесс запущен? Допустим я могу взять через posix_getpid идентификатор процесса, но как определить что процесс с таким PID работает? (не считаясь с тем фактом что это уже может быть совсем другой процесс, все-таки их на хостинге постоянно порождается много, а PID-ов всего 2^16 -
вероятность совпадения низка, проверка будет в пределах 5 минут от падения).
-~{}~ 28.04.06 17:44:
Да, забыл сказать
Фоновые процессы пускаются из под своего юзера
И хотелось бы из-под пользователя Web-сервера тоже узнавать их состояние...
Итак условия - имеется некоторое количество различных "фоновых" процессов, запускаемых по крону.
Они зависят друг от друга, и каждый из них не должен
1. Запускаться повторно
2. Запускаться если "конкурирующий" процесс уже работает
3. Более "важный" процесс должен уметь "попросить" процесс менее "важный" завершиться.
Сейчас сделано с использованием спец. флагов в БД, процессы на каждой итерации считывают "флаги" и действуют согласно им. Но это увы не работает, т.к. периодически процессы "падают". Падают редко, раз может в сутки. Но в результате, флаг активности остается и вся остальная работа не делается.
Проблема - как определить что процесс запущен? Допустим я могу взять через posix_getpid идентификатор процесса, но как определить что процесс с таким PID работает? (не считаясь с тем фактом что это уже может быть совсем другой процесс, все-таки их на хостинге постоянно порождается много, а PID-ов всего 2^16 -
вероятность совпадения низка, проверка будет в пределах 5 минут от падения).-~{}~ 28.04.06 17:44:
Да, забыл сказать
Фоновые процессы пускаются из под своего юзера
И хотелось бы из-под пользователя Web-сервера тоже узнавать их состояние...