Я сталкиваюсь с небольшой путаницей с документацией GOD
Сначала мой скрипт конфигурации выглядит так
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: ДИЛЕММА ФАЙЛА GOD PID
В документации GOD упоминается
Теперь у меня есть ясность, я установил pid_file и pid_file_directory, но PID нигде не видно в том каталоге, который определен в моей конфигурации.
К вашему сведению, GOD запустился с sudo
, поэтому предполагается, что каталог будет доступен для записи GOD
Путаница 2: START_IF CONDITION
Теперь, как определить условие start_if, я не могу понять вариант использования для этого. Также слово условие какие условия для набора условий
- Является ли :process_running набором условий? Если да, то какие другие наборы условий для start_if
Кроме того, что должны делать атрибуты внутри блока do? и когда их казнят?
Точнее, я имею в виду c.running = false (что он делает внутри и какой другой список атрибутов доступен в start_if)
Путаница 3 (команда запуска/остановки/перезапуска)
Теперь, учитывая мой файл конфигурации, в котором записана команда start, теперь также требуется написать команду остановки и перезапуска в конфигурации.
так что при запуске следующего
sudo god остановить беспорядок
sudo god перезапустить беспорядок
их бы казнили
Предполагая, что я их не пишу
что произойдет, если запустить их?
Будет ли GOD в конечном итоге убивать запущенный процесс, когда будет выполнена команда остановки, т.е.
sudo god stop mess' is executed? or restart the running process when restart command i.e
sudo god restart mess`?
Может ли кто-нибудь поделиться светом на это
Путаница 4 (демонизировать процесс или нет):
Согласно документации GOD
Теперь рассмотрим, что я явно поставил процесс в фоновый режим внутри БОГА, что-то вроде
w.start = "ruby /Users/joshianiket22/myProject/god_script/simple.rb &"
что будет в таком случае
- Будет ли БОГ следить за ними для команды остановки и перезапуска?
Таким образом, демонизация вашего процесса внутри GOD (в команде запуска) может считаться допустимым подходом, предполагая, что GOD знает, что процесс перешел в фоновый режим, и реагирует на все команды start/stop/restart в этом процессе при запуске против GOD?
подобно
sudo god остановить беспорядок
sudo god перезапустить беспорядок
Может ли кто-нибудь пролить свет на это, а также
Итак, вот список вопросов, извлеченных из приведенного выше
Почему не работает синтаксис pid_file_directory?
если :process_running - это набор условий, какие другие условия содержит start_if, а также то, что c.running = false (внутренне делает)
Нужно ли писать/определять
stop
иrestart
в конфигурации GodЕсли процесс явно переместится в фоновый режим, БОГ по-прежнему будет следить за ним для выполнения таких команд, как
stop|restart
и т. д.