Пытаясь понять БОГА рб

Я сталкиваюсь с небольшим количеством путаницы с документацией БОГА

Во-первых, мой конфигурационный скрипт выглядит так

DIRECTORY = "/Users/joshianiket22/myProject/god_script"
God.pid_file_directory = DIRECTORY
God.watch do |w|
  w.name = "mess"
  w.start = "ruby /Users/joshianiket22/myProject/god_script/simple.rb"
  w.pid_file =  File.join(DIRECTORY,'simple.pid')
  puts File.join(DIRECTORY,'simple.pid')
  w.stop = "ruby -e 'puts \"#{DateTime.now}\"'"
  w.log = File.join(DIRECTORY,'god.log')
  w.behavior(:clean_pid_file)
  w.interval = 10.seconds
   w.start_if do |start| 
    start.condition(:process_running) do |c| 
      puts "Inside start condition"
      c.interval = 5.seconds 
      c.running = false
    end 
  end 
end

Путаница 1: ДИЛЕММА ФАЙЛА БОГА PID

В документации БОГА это упоминается

введите описание изображения здесь

Теперь у меня ясно, что я установил pid_file и pid_file_directory, но PID - это не то место, где можно увидеть в этом каталоге, который определен в моей конфигурации.

К вашему сведению, начал БОГ с sudo при условии, что каталог будет доступен для записи БОГОМ

Путаница 2: START_IF СОСТОЯНИЕ

введите описание изображения здесь

Теперь, когда мы определяем условие start_if, я не могу понять сценарий использования для этого. Также слово условие, какие условия для набора условий

  • Является ли:process_running набором условий?, если да, каковы другие условия для start_if?
  • Кроме того, что предполагают делать атрибуты внутри блока do? и когда они будут казнены?

    Точнее я имел в виду c.running = false (что он делает внутренним и какие другие списки атрибутов доступны на start_if)

Путаница 3 (команда пуска / остановки / перезапуска)

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

так что при запуске следующего

судо бог остановит беспорядок
Судо Бог перезагрузить беспорядок

они будут казнены

При условии, что я их не пишу

  • что будет, если запустить их?

  • Будет ли Бог в конечном итоге убьет запущенный процесс, когда команда останова, т.е. sudo god stop mess' is executed? or restart the running process when restart command i.esudo god restart mess` выполнен?

Кто-нибудь может поделиться светом на это

Путаница 4 (стоит или нет демонизировать процесс):

Согласно документации БОГА введите описание изображения здесь

Теперь рассмотрим, что я явно помещаю процессом в фон внутри GOD что-то вроде

w.start = "ruby /Users/joshianiket22/myProject/god_script/simple.rb &" 

что будет в таком случае

  • Будет ли БОГ следить за их командами остановки и перезапуска?

Итак, демонизация вашего процесса внутри GOD (в команде start) может считаться правильным подходом, предполагающим, что GOD знает, что процесс прошел в фоновом режиме и реагирует на все команды запуска / остановки / перезапуска этого процесса при запуске с GOD?

лайк

судо бог остановит беспорядок
Судо Бог перезагрузить беспорядок

Кто-нибудь может пролить свет на это тоже

Итак, вот список вопросов, извлеченный сверху

  • Почему не работает синтаксис pid_file_directory?

  • if:process_running - это набор условий, которые другие условия выполняет start_if и что c.running = false (внутренне)

  • Нужно ли писать / определять stop а также restart в конфигурации Бога

  • Если процесс будет явным, перейдите в фоновый режим, БОГ все еще будет следить за его командами stop|restart так далее

1 ответ

Решение

Частично ответьте на часть моего вопроса

Вопрос: нужно ли писать / определять остановки и перезапуск в конфигурации Бога

Ответ: Не совсем, вы можете определить свою собственную команду, но если в случае, если вы не определили, есть значение по умолчанию lambda за stop а также restart

Прямо из документации БОГА

введите описание изображения здесь

Вопрос: Если процесс будет явным, перейдите в фоновый режим, будет ли GOD по-прежнему следить за его командами вроде stop|restart и т.д.

Ответ: Ответ ДА и НЕТ, Нет, потому что если вы не дадите БОГУ pid файл для мониторинга не будет контролировать процесс, работающий в фоновом режиме

Опять из документации БОГА

введите описание изображения здесь

Вопрос: Если: process_running - это набор условий, которые делают другие условия start_if содержит также то, что c.running = false (внутренне делать)

Ответ: Ну, я отвечу на этот вопрос в 2 частях

  • Какие другие условия делает start_if содержит?

    Ans: Ну, лучшее место, чтобы посмотреть, что находится в условиях каталога проверки бога здесь есть process_running условие также существует

  • Что c.running = false (внутренне делать)?

    Ans: Хорошо, c.running внутренне используется для проверки (проверка выполняется в отношении идентификатора процесса и рабочей переменной), выполнялся ли процесс до того, когда god начать, если процесс т.е. (c.running = true) запущен и pid указанный файл исправил все работает хорошо, но если c.running = true а также pid отслеживается отличается или не существует, он продолжает цикл, поэтому рекомендуется использовать c.running = true только если процесс уже запущен и корректен pid_file (с правильным pid в это есть) это определить в файле бога. Это можно проверить здесь

Примечание: Принятие моего ответа, так как остался только один вопрос, и я считаю, что он в основном не работал из-за моей неправильной работы (т.е. pid не был сохранен в нужной директории):) Остальные вопросы, на которые я отвечаю.

Другие вопросы по тегам