myshansun Опубликовано 1 февраля, 2007 Жалоба Опубликовано 1 февраля, 2007 Здравствуйте! Как узнать запущен ли скрипт на bash из самого скрипта? Нужно для предотвращения повторного запуска из другого терминала. Цитата
myshansun Опубликовано 1 февраля, 2007 Автор Жалоба Опубликовано 1 февраля, 2007 Нет это не подходит... Поскольку запускается из самого скрипта вылезает много строчек, причем каждый раз по-разному... Нет ли другого способа, например определить pid скрипта. Через pidof не получается тоже. Цитата
Hans R. Steiner Опубликовано 1 февраля, 2007 Жалоба Опубликовано 1 февраля, 2007 man ps ps -C bash -o pid= Цитата
SignFinder Опубликовано 1 февраля, 2007 Жалоба Опубликовано 1 февраля, 2007 проще использовать lock файл. Скрипт при запуске создает файл blabla.lck а при останове удаляет его. А другим скриптам нужно просто смотреть есть файл lck или нет. Цитата
myshansun Опубликовано 1 февраля, 2007 Автор Жалоба Опубликовано 1 февраля, 2007 Dr.Spectre писал(а) Thu, 01 February 2007 17:03 проще использовать lock файл. Скрипт при запуске создает файл blabla.lck а при останове удаляет его. А другим скриптам нужно просто смотреть есть файл lck или нет. Пробовал ваш вариант, хороший, НО.... скрипт могут прервать в любой момент и тогда лок-файл будет висеть неудаленным! Цитата
Legalizer Опубликовано 1 февраля, 2007 Жалоба Опубликовано 1 февраля, 2007 Просто предположение (не знаю, так ли работает grep). А что если сделать ps | grep <script> и смотреть exit code отработавшего grep? Т.е. если он найдет, то по моей логике должен вернуть 0, а если нет - еще чего-нибудь. еще раз повторюсь, это просто предположение, сам я и двух строчек в жизни не написал Цитата
Ineu Опубликовано 1 февраля, 2007 Жалоба Опубликовано 1 февраля, 2007 myshansun писал(а) Thu, 01 February 2007 16:29 Dr.Spectre писал(а) Thu, 01 February 2007 17:03 проще использовать lock файл. Скрипт при запуске создает файл blabla.lck а при останове удаляет его. А другим скриптам нужно просто смотреть есть файл lck или нет. Пробовал ваш вариант, хороший, НО.... скрипт могут прервать в любой момент и тогда лок-файл будет висеть неудаленным! Ну вообще-то перехват сигналов еще никто не отменял. А если проще - то действительно лучше пользоваться ps. Куча строчек очень просто лечится grep'ом Цитата
allez Опубликовано 1 февраля, 2007 Жалоба Опубликовано 1 февраля, 2007 myshansun писал(а) Thu, 01 February 2007 21:29 скрипт могут прервать в любой момент и тогда лок-файл будет висеть неудаленным! А на этот случай lock-файлы создаются либо в виде "name.lck.<PID процесса>", либо этот самый PID содержится внутри lock-файла. При необходимости поводится простая проверка вида "ps ax | grep <PID>" и если такого процесса нет, файл удаляется. Цитата
Hans R. Steiner Опубликовано 1 февраля, 2007 Жалоба Опубликовано 1 февраля, 2007 Люююдиии, зачем grep? Я же дал строку... Цитата
myshansun Опубликовано 2 февраля, 2007 Автор Жалоба Опубликовано 2 февраля, 2007 Спасибо всем! Нашел комплексное решение - lock-файлы + ps -C Цитата
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.