God 是一个使用 Ruby 写成的用于监视任务运行状态的可扩展框架,它的配置脚本同样采用 Ruby 来编写。因此,比起它的前辈 Monit,God 更为简单,灵活且易于扩展(尤其对于 Ruby 使用者),你可以很轻易的添加一些自定义规则。
示例:
# Events I [2011-12-10 15:24:34] INFO: Loading simple.god I [2011-12-10 15:24:34] INFO: Syslog enabled. I [2011-12-10 15:24:34] INFO: Using pid file directory: /Users/tom/.god/pids I [2011-12-10 15:24:34] INFO: Started on drbunix:///tmp/god.17165.sock I [2011-12-10 15:24:34] INFO: simple move 'unmonitored' to 'init' I [2011-12-10 15:24:34] INFO: simple moved 'unmonitored' to 'init' I [2011-12-10 15:24:34] INFO: simple [trigger] process is not running (ProcessRunning) I [2011-12-10 15:24:34] INFO: simple move 'init' to 'start' I [2011-12-10 15:24:34] INFO: simple start: ruby /Users/tom/dev/mojombo/god/simple.rb I [2011-12-10 15:24:34] INFO: simple moved 'init' to 'start' I [2011-12-10 15:24:34] INFO: simple [trigger] process is running (ProcessRunning) I [2011-12-10 15:24:34] INFO: simple move 'start' to 'up' I [2011-12-10 15:24:34] INFO: simple registered 'proc_exit' event for pid 23298 I [2011-12-10 15:24:34] INFO: simple moved 'start' to 'up' # Polls I [2011-12-07 09:40:18] INFO: Loading simple.god I [2011-12-07 09:40:18] INFO: Syslog enabled. I [2011-12-07 09:40:18] INFO: Using pid file directory: /Users/tom/.god/pids I [2011-12-07 09:40:18] INFO: Started on drbunix:///tmp/god.17165.sock I [2011-12-07 09:40:18] INFO: simple move 'unmonitored' to 'up' I [2011-12-07 09:40:18] INFO: simple moved 'unmonitored' to 'up' I [2011-12-07 09:40:18] INFO: simple [trigger] process is not running (ProcessRunning) I [2011-12-07 09:40:18] INFO: simple move 'up' to 'start' I [2011-12-07 09:40:18] INFO: simple start: ruby /Users/tom/dev/mojombo/god/simple.rb I [2011-12-07 09:40:19] INFO: simple moved 'up' to 'up' I [2011-12-07 09:40:19] INFO: simple [ok] process is running (ProcessRunning) I [2011-12-07 09:40:24] INFO: simple [ok] process is running (ProcessRunning) I [2011-12-07 09:40:29] INFO: simple [ok] process is running (ProcessRunning)
Linux命令--god 目录 一、什么是God 二、God的优缺点 三、安装 四、快速开始 五、动态加载文件进入一个已经运行的god 六、God 的其他功能 一、什么是God God 是用 Ruby 写的进程监控框架,具有易配置易扩展的优点。用它可以很方便的监控一个软件的运行状态,并在特定的条件下杀死或重启进程,以保证任务的持久性和高可用性。 常见场景 监控
两个自动化运维的监控软件,留底备用。先记录一下: god ruby编写,据说小米在用。 http://godrb.com/ monit Python编写,正在IDOL系统中试用。 https://mmonit.com/monit/documentation/monit.html 附上monit的配置文件以及exec脚本: 在/monit/etc/monit.d目录下,名称为:服务进程名
一般情况下,几句shell脚本,bat脚本,或者简单的100行c#代码都可以做到比较通用的进程管理工具,但是专业化的产品通用性和个性化还是有很多看头的。 1. 用ruby来写配置文件 很多动态语言都这样,应用都省略了解析过程,而且可以很方便的支持循环之类语句来启动同一应用的不同参数的多个实例 2. 支持poll和event方式的检测 3. 进程的监控 a. 拉起进程 (可以deam
Vocabulary and Concepts Know that Ruby is interpreted language and that it is cross platform. Ruby source files usually have .rb extension (not mandatory). Know that Ruby does not enforce an object-or
God - A Process Monitoring Framework in Ruby God - A Process Monitoring Framework in Ruby A Better Way to Monitor God is an easy to configure, easy to extend monitoring framework written in Ruby. Keep
先介绍一下god做什么用的,google一下‘rails god’,第一条搜索就是“God - A Process Monitoring Framework in Ruby”,我就不翻译了,进入正题。 作为是rails里很常用的一个进程监控框架,god在rails项目里是很容易配置,很容易使用的,学习成本几乎为零,至少在我接触到的项目里,基本上都是用它,可能还有其他更好用的框架,原谅笔者知识太窄了
关于ruby中方法的一些知识拓展 一个方法的返回值通常是方法中最后一个表达式的值,但是如果最后一个表达式的值不存在,则方法返回的值为nil。 如果一个方法最后一个表达式产生多个值,返回的值需要用逗号分隔开,最后方法会以数组的形式返回多个值。为了是代码更加清晰,可以将返回的值显示的放入数组中然后返回。见下面示例: def name puts "Hello World!" end p name
第4章代码块blocks 基础知识 作用域:用代码块携带variables through scopes 通过传递block给instance_eval方法来控制作用域。 把block转换为Proc,lambda这样的可反复调用的对象。4.5 4.12基础 def a_method(a,b) a + yield (a,b) end p a_method(2,1) {|x, y|
NodeJS可以感知和控制自身进程的运行环境和状态,也可以创建子进程并与其协同工作,这使得NodeJS可以把多个程序组合在一起共同完成某项工作,并在其中充当胶水和调度器的作用。本章除了介绍与之相关的NodeJS内置模块外,还会重点介绍典型的使用场景。 开门红 我们已经知道了NodeJS自带的fs模块比较基础,把一个目录里的所有文件和子目录都拷贝到另一个目录里需要写不少代码。另外我们也知道,终端下的
如果项目依赖各种外界的进程,应使用 foreman 来管理它们。
细节 进程一般分为批处理进程、交互进程和守护进程三类。 守护进程总是活跃,在系统启动时通过脚本自动启动,或由 root 启动,通常在后台运行。 一个进程可以拥有子进程。当父进程终止时,它的子进程也随之终止;而子进程终止时,父进程通常可以继续运行。 init 进程为根进程,所有进程都是它的子进程 ps 显示进程信息,选项可省略 “-” aux 以 BSD风格 显示进程 常用 -efH 以 Syste
PROCESS MANAGEMENT 在任何时间,Linux 系统通常同时运行数百个,甚至数千个进程。进程只是一个正在运行和使用资源的程序。它包括终端,Web 服务器,任何正在运行的命令,任何数据库,GUI 界面等等。任何优秀的 Linux 管理员(特别是黑客)都需要了解如何管理他们的流程以优化他们的系统。例如,一旦黑客控制了目标系统,他们可能想要找到并停止某个进程,如防病毒应用程序或防火墙。为此
ps 命令查看进程 ps 用来显示操作系统上的进程,包括进程 UID,PID,PPID,CPU 使用情况等。ps aux $ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.3 128176 6860 ? Ss 12:36
主要内容:反引号运算符,system() 函数,实例,fork() 函数,实例,实例,Kill 函数,实例Perl 中你可以以不同的方法来创建进程。 本教程将讨论一些进程的管理方法。 你可以使用特殊变量 $$ 或 $PROCESS_ID 来获取进程 ID。 %ENV 哈希存放了父进程,也就是shell中的环境变量,在Perl中可以修改这些变量。 exit() 通常用于退出子进程,主进程在子进程全部退出后再退出。 所有打开的句柄会在子程序中被 dup() 函数复制, 所有关闭进程所有句柄不会影响其
主要内容:什么是进程和程序,进程管理的作用无论是 Linux 系统管理员还是普通用户,监视系统进程的运行情况并适时终止一些失控的进程,是每天的例行事务。和 Linux 系统相比,进程管理在 Windows 中更加直观,它主要是使用"任务管理器"来进行进程管理的。 通常,使用"任务管理器"主要有 3 个目的: 利用"应用程序"和"进程"标签来査看系统中到底运行了哪些程序和进程; 利用"性能"和"用户"标签来判断服务器的健康状态; 在"应用程
Perl 中你可以以不同的方法来创建进程。 本教程将讨论一些进程的管理方法。 你可以使用特殊变量 $$ 或 $PROCESS_ID 来获取进程 ID。 %ENV 哈希存放了父进程,也就是shell中的环境变量,在Perl中可以修改这些变量。 exit() 通常用于退出子进程,主进程在子进程全部退出后再退出。 所有打开的句柄会在子程序中被 dup() 函数复制, 所有关闭进程所有句柄不会影响其他进程