Перейти к содержанию

Запущен ли скрипт на bash


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

Здравствуйте!

Как узнать запущен ли скрипт на bash из самого скрипта?

Нужно для предотвращения повторного запуска из другого

терминала.

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

Нет это не подходит... Поскольку запускается из самого скрипта вылезает много строчек, причем каждый раз по-разному...

Нет ли другого способа, например определить pid скрипта. Через pidof не получается тоже.

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

проще использовать lock файл.

Скрипт при запуске создает файл blabla.lck а при останове удаляет его. А другим скриптам нужно просто смотреть есть файл lck или нет.

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

Dr.Spectre писал(а) Thu, 01 February 2007 17:03

проще использовать lock файл.

Скрипт при запуске создает файл blabla.lck а при останове удаляет его. А другим скриптам нужно просто смотреть есть файл lck или нет.

Пробовал ваш вариант, хороший, НО.... скрипт могут прервать в любой момент и тогда лок-файл будет висеть неудаленным!

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

Просто предположение (не знаю, так ли работает grep).

А что если сделать ps | grep <script> и смотреть exit code отработавшего grep? Т.е. если он найдет, то по моей логике должен вернуть 0, а если нет - еще чего-нибудь.

еще раз повторюсь, это просто предположение, сам я и двух строчек в жизни не написал Smile

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

myshansun писал(а) Thu, 01 February 2007 16:29

Dr.Spectre писал(а) Thu, 01 February 2007 17:03

проще использовать lock файл.

Скрипт при запуске создает файл blabla.lck а при останове удаляет его. А другим скриптам нужно просто смотреть есть файл lck или нет.

Пробовал ваш вариант, хороший, НО.... скрипт могут прервать в любой момент и тогда лок-файл будет висеть неудаленным!

Ну вообще-то перехват сигналов еще никто не отменял. А если проще - то действительно лучше пользоваться ps. Куча строчек очень просто лечится grep'ом Smile

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

myshansun писал(а) Thu, 01 February 2007 21:29

скрипт могут прервать в любой момент и тогда лок-файл будет висеть неудаленным!

А на этот случай lock-файлы создаются либо в виде "name.lck.<PID процесса>", либо этот самый PID содержится внутри lock-файла. При необходимости поводится простая проверка вида "ps ax | grep <PID>" и если такого процесса нет, файл удаляется.

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...