LINUX.ORG.RU

[shell] детектор запущенности программы

 


0

0

Надо что бы в памяти постоянно висел скрипт, проверяющий запущена ли определенная программа и если она не запущена, то что бы он ее запускал. Навоял нечто такое:

#!/bin/bash

while true
do
    PID=$(pidof программа)
    if [[ -z $PID ]]; then
          программа
    fi
done
Проблема в том, что этот скрипт загружает процессор на 100%. Как этого избежать?


> детектор запущенности программы

Я уж подумал, что речь идет о скрипте, определяющем, насколько запущен исходный код программы (позабыт - позаброшен). Даже интересно стало. А тут...

oami ★★
()
Ответ на: комментарий от oami

Ну для opensource проектов как правило доступна дата последнего изменения/обновления кода. Если прошло месяца 3 - считай программу заброшенной

amomymous ★★★
()

>Навоял

загружает процессор на 100%

айлолд, «навоял»

anonymous_sapiens ★★★★★
()

Забудь про /etc/inittab. Это решение для красноглазых админов, которые не понимают, что задачи лучше решать без рутовых прав, и туда как правило прописывают системные задачи. Ты нормально написал, добавь только sleep, как писали и все будет хорошо.

Pantserovik
()

как вариант:
crontab -e
* * * * * DISPLAY=:0.0 /bin/bash -c 'pidof программа || программа'

будет тебе каждую минуту запускать

xydo ★★
()
Ответ на: комментарий от Pantserovik

открою тайну, su не обязательно запускает программы от рута, можно указывать любого пользователя. это к твоему высеру про «рутовые права». а изобретать велосипеды, вместо того, чтобы воспользоваться уже существующими решениями на основе init или того-же cron - голимое пионерство

ananas ★★★★★
()
Ответ на: комментарий от ananas

Открою тебе тайну, чтоб пользоваться cron достаточно обычных прав. Читай маны. Это первое.
Второе, cron не подходит здесь, ибо в случае если программа упадет, она может быть запущена почти через минуту.
Третье - init для системных программа, как тебе уже было сказано.
Четвертное - линукс ты нихрена не знаешь.

Pantserovik
()

А он может запускать программу, если это требует прав рута?

Dmitry_Sokolowsky ★★★★★
()

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

psv1967 ★★★★★
()
Ответ на: комментарий от Pantserovik

> Четвертное - линукс ты нихрена не знаешь.

Ай, смеюс, анонимус обозвал ananas'а ламером.

AnDoR ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.