Перейти до

Как запретить повторный запуск программы в линукс


Рекомендованные сообщения

Вопрос к знатокам. Как написать скрипт в линухе чтобы он проверял наличие программы в памяти и не запускал повторно эту программу.

Ссылка на сообщение
Поделиться на других сайтах

Да Борис, программа в исходниках. Нужно проверять, и если прога исполняется, то не запускать. Это прога , которая обрабатывает лог файлы net-acct для детальной статистики по хостам и записывает результат каждому юзеру. Бывает, что не успевает обработать за 30 мин, а хрон запускает уже новую.

Ссылка на сообщение
Поделиться на других сайтах

Так, все очень просто!

 

Ты в кроне вызывай не обработчик логов, а скрипт, который проверяет запущен ли обработчик, и если нет, то он запустит обработчик.

 

Если надо, напиши мне в мыло я сваяю тебе такой скрпит

 

stg-34

Ссылка на сообщение
Поделиться на других сайтах

#!/bin/bash

 

#сколько запущено процессов netacct_stat?

a=` ps ax | grep "netacct_stat" | wc -l`

 

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

if [ $a -eq 0 ]

then

 

echo "starting netacct_stat"

netacct_stat

 

fi

Ссылка на сообщение
Поделиться на других сайтах

Ещё добавлю тут что для этой цели используют так называемые lock файлы, при запуске программа создает такой файл, а при завершении удаляет за собой,и когда прога запускается проверяет наличие такого файла - если нет значит путь свободен и можно запусткаться, минус lock файлов в том что при неправильном завершении программы лок айл отсанется и придется удалять его ручками

 

PS:

Нужно -eq 1 а не 0, иначе не запускается. Возможно, что скоро будет другая версия.

тут BOBAH исправил но не прокомментировал почему, дело в том что команда ps ax | grep "netacct_stat"` всегд покажет как минимум один процесс grep "netacct_stat", так как grep запускается до ps

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...