Назад | Перейти на главную страницу

получать уведомление, когда процесс запускается

Я пытаюсь найти способ получить уведомление, когда один из моих процессов снова запускается (я пытался отслеживать файл proc, но не смог, monit не обрабатывает получение одного и того же pid и запускается периодически). Любые идеи?

может что-то совсем другое. Простая обертка.

напишите сценарий bash вместо исходного двоичного файла

#!/bin/bash

# put here commands to notify You
# optional commands to redirect fd to original processs if needed

exec /path/to/original/binary

В ваших вопросах не так много подробностей о том, чего именно вы ожидаете, но это сработает.

По моему мнению, твоя первая идея об использовании Monit было лучшим подходом и он более надежен.

Я пробовал контролировать файл proc, но безуспешно

Расскажите, где вы застряли, мы можем помочь. Monit в полной мере на это способен. Может у вас где-то неправильно настроен Монит.

monit не справляется с получением того же pid

Верно, но не стоит об этом беспокоиться. Как системы Linux управляют процессами, вы никогда не получите тот же PID, что и предыдущий.

и (Monit) запускается периодически

Правильно. Monit имеет интервал опроса по умолчанию 120 секунд. Если этот уровень вам не подходит, вы можете уменьшить интервал опроса, изменив значение set daemon n (where n is a number in seconds - default 120) параметр в файле конфигурации.

Вы можете получать уведомления о событиях ядра, связанных с процессами, через Netlink. Посмотреть здесь например код.

вы можете написать программу, которая получает список процессов, анализирует этот список и обнаруживает новые процессы. затем добавьте «датчик значения http xml» в свое программное обеспечение для мониторинга (кактусы, ...) и проверьте результаты своей программы.

http://www.cyberciti.biz/faq/show-all-running-processes-in-linux/