BOBAH 0 Опубликовано: 2004-08-14 18:13:55 Share Опубликовано: 2004-08-14 18:13:55 Вопрос к знатокам. Как написать скрипт в линухе чтобы он проверял наличие программы в памяти и не запускал повторно эту программу. Ссылка на сообщение Поделиться на других сайтах
stg-34 0 Опубліковано: 2004-08-14 22:00:08 Share Опубліковано: 2004-08-14 22:00:08 Тебе именно не запускать или прибивать лишний экземпляр? Программа в исходниках? Ссылка на сообщение Поделиться на других сайтах
BOBAH 0 Опубліковано: 2004-08-15 09:08:08 Автор Share Опубліковано: 2004-08-15 09:08:08 Да Борис, программа в исходниках. Нужно проверять, и если прога исполняется, то не запускать. Это прога , которая обрабатывает лог файлы net-acct для детальной статистики по хостам и записывает результат каждому юзеру. Бывает, что не успевает обработать за 30 мин, а хрон запускает уже новую. Ссылка на сообщение Поделиться на других сайтах
Гость Guest Опубліковано: 2004-08-15 10:44:55 Share Опубліковано: 2004-08-15 10:44:55 Так, все очень просто! Ты в кроне вызывай не обработчик логов, а скрипт, который проверяет запущен ли обработчик, и если нет, то он запустит обработчик. Если надо, напиши мне в мыло я сваяю тебе такой скрпит stg-34 Ссылка на сообщение Поделиться на других сайтах
BOBAH 0 Опубліковано: 2004-08-15 15:46:38 Автор Share Опубліковано: 2004-08-15 15:46:38 Написал на мыло тебе, жду Ссылка на сообщение Поделиться на других сайтах
zulu_gluk 23 Опубліковано: 2004-08-15 17:25:14 Share Опубліковано: 2004-08-15 17:25:14 А чего же Вы по мылу общаетесь. Скрипт в студию! Может кому-то и пригодится. Ссылка на сообщение Поделиться на других сайтах
stg-34 0 Опубліковано: 2004-08-15 18:08:39 Share Опубліковано: 2004-08-15 18:08:39 #!/bin/bash #сколько запущено процессов netacct_stat? a=` ps ax | grep "netacct_stat" | wc -l` #если процессов ноль, то запускам, иначе ничего не делаем if [ $a -eq 0 ] then echo "starting netacct_stat" netacct_stat fi Ссылка на сообщение Поделиться на других сайтах
BOBAH 0 Опубліковано: 2004-08-15 20:16:41 Автор Share Опубліковано: 2004-08-15 20:16:41 Нужно -eq 1 а не 0, иначе не запускается. Возможно, что скоро будет другая версия. Ссылка на сообщение Поделиться на других сайтах
Quarcel 0 Опубліковано: 2004-08-16 07:28:21 Share Опубліковано: 2004-08-16 07:28:21 Ещё добавлю тут что для этой цели используют так называемые lock файлы, при запуске программа создает такой файл, а при завершении удаляет за собой,и когда прога запускается проверяет наличие такого файла - если нет значит путь свободен и можно запусткаться, минус lock файлов в том что при неправильном завершении программы лок айл отсанется и придется удалять его ручками PS: Нужно -eq 1 а не 0, иначе не запускается. Возможно, что скоро будет другая версия. тут BOBAH исправил но не прокомментировал почему, дело в том что команда ps ax | grep "netacct_stat"` всегд покажет как минимум один процесс grep "netacct_stat", так как grep запускается до ps Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас