Назад | Перейти на главную страницу

определить, запущены ли демоны LSF

Я унаследовал сценарий, который пытается определить, работают ли демоны LSF, выполнив ps а затем поиски всякой ерунды. Я думаю, что это подвержено ошибкам, и я ищу лучший способ. Лучшее, что я нашел до сих пор, - это команда LSF lsid, но это указывает только на то, что LSF установлен, и не говорит о том, что все работает. Есть ли у кого-нибудь идея получше, если не считать работы? Это должно работать с Linux и Solaris.

В основном:

Единственный безопасный способ в Linux / Unix узнать, запущен ли определенный процесс или нет, - это использовать подход pidfile.

Это означает:

  1. Когда вы запускаете процесс, вы сохраняете PID только что запущенного процесса в pidfile. Обычно этот файл сохраняется там, где у процесса есть файлы журнала, и хорошее имя в вашем случае будет lsf.pid (похоже, это соглашение для таких файлов).

  2. Теперь вам нужен сценарий для запуска / остановки / отображения статуса вашего процесса, который учитывает pidfile. Их много в Интернете.

Основное преимущество этого подхода заключается в том, что вы можете ps -p <pidno>. Это ЕДИНСТВЕННЫЙ безопасный способ определить, запущен процесс или нет. Так же ps -p команда переносима между версиями Linux / Unix, в отличие от многих других вещей, которые вы можете найти.

В общем: Да, вы можете использовать метод grep'ing для различных форм вывода из ps command, но это никогда не будет безопасным методом, и его сложно сделать по-настоящему переносимым. Укусите пулю и используйте подход pidfile.

Касаемо Соляриса:

Ваш демон действительно должен работать под SMF.

Это решает все ваши проблемы (вам не нужен общий подход, описанный выше), и в то же время дает вам:

  1. Автоматический запуск при загрузке.
  2. Управление зависимостями: процесс запускается только при соблюдении определенных вами зависимостей, таких как «сеть работает» или что-то еще.
  3. Автоматический перезапуск в случае сбоя процесса.
  4. Автоматический перезапуск при перезапуске зависимостей (если вы этого хотите).
  5. SMF отслеживает всю проблему уникальной идентификации вашего процесса.
  6. Вы можете определить, сколько раз вы позволите своей службе запускаться одновременно. Обычно это 1. Это позволяет избежать повторного запуска процесса.
  7. Делегация администрации. Вы можете безопасно делегировать другим право запускать / останавливать службу без того, чтобы такой пользователь имел доступ к привилегиям, которые требуются службе (это своего рода sudo на стероидах).