这是我使用“上帝”运行 node.js 服务器的最小配置文件:
APP_ROOT = "/home/sphynx/app" # application root
God.pid_file_directory = "#{APP_ROOT}/pids" # directory to store PID files
God.watch do |w|
w.name = "chapayev"
w.interval = 5.seconds # default
w.start = "env node #{APP_ROOT}/server.js" # path to node.js server file
w.stop = "env killall node" # stopping node explicitly
w.start_grace = 10.seconds
w.restart_grace = 10.seconds
w.log = "#{APP_ROOT}/log/chapayev.log" # to enable logging
w.start_if do |start| # start if condition is met
start.condition(:process_running) do |c| # check if process is running
c.interval = 5.seconds
c.running = false
end
end
end
如果 node.js 尚未启动,它会自动启动它,并使用内部的“上帝”守护进程。
确保您的配置中有“start_if”部分,它定义了启动受监控进程的条件。在这里,我们有一个条件,如果进程没有运行,正是我们需要的!
至于“sudo”权限:我认为没有必要在你的上帝配置“start”命令中包含 sudo。您可能宁愿使用 sudo "god" 本身调用,然后它也会使用 sudo 运行受监控的进程。例如,我正在使用以下命令测试“上帝”配置:
sudo god -c conf/chapayev.god -D
(-D 用于在控制台打印输出以立即查看所有配置错误)
有关更多详细信息,请查看此帖子:
http ://blog.acmarques.com/deploying_node_with_nginx_and_god