god是一个易于配置,易于扩展Ruby编写的进程监控框架,让你在服务部署过程中的服务进程和任务运行变得简单,god的目标提供最简单,最强大的监控应用程序。
因为mac天然安装了ruby环境,所以可以直接按照官方推荐的方式安装:
[sudo] gem install god
但是,如果你是在mac下通过这条命令安装的话,会出现如下错误提示:
Building native extensions. This could take a while...
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/god
这是什么鬼?
原来在Mac新版本系统中,内核中引入了Rootless机制。导致下列目录即使是root用户也没有写和执行的权限,只有经过apple签名的才可以。涉及到的目录:
/System
/bin
/sbin
/usr (except /usr/local)
在 stackoverflow 看到有人通过下面这种命令安装:
sudo gem install -n /usr/local/bin god
上命令在mac下是可以安装的,也就是说把god命令安装到了/usr/local/bin目录下。
通过下面命令查看god的安装路径
which god
/usr/local/bin/god
查看god的版本信息
god --version
举个栗子
1, 编写一个ruby小程序(不会写ruby,看的官方实例 ),命名为:hello.rb
loop do
puts 'Hello'
sleep 1
end
2, 编写god进程配置文件,文件命名为:hello.god
God.watch do |w|
w.name = "simple"
w.start = "ruby /full/path/to/hello.rb"
w.keepalive
end
3, 运行god,加载配置,有两种方式:
- 启动god同时加载配置: god -c hello.god
- 先启动god,再加载配置: god && god load hello.god
好的,就是这个节奏,
通过 god status 命令,可以看到状态如下:
hello: up
说明写的god配置实例加载并启动成功了
这篇文章目前没有评论