使用 Ruby 自动重启服务的脚本


我有一自己写的服务需要在后台一直运行.现在是每次更新代码后都需要手动来重启太麻烦了

我找过使用shell环境中的 nohup 命令也使用过ruby的 daemons Gem 包但是都不理想.

我遇到的问题:

1:使用Daemons时重启服务后cpu直接到100%,但是当我杀掉daemons重启的服务然后手动重启cpu就正常了.

2:用ruby脚本去调用Nohup命令 nohup command > myout.file 2>&1 &启服务cup到100%

3: 使用过shell 命令后加 "&" ,这样做的结果会使服务占用cpu到100% 而且一直有输出

为什么我使用上面的方法重启服务都会使cpu的利用到100%? 是不是我漏掉什么地方了?

麻烦大牛们帮忙看看问题出在什么地方吧?

Linux 脚本 ruby bash

abrums 11 years, 8 months ago

首先关于后台执行的话,推荐用 monit,我一直在服务器使用这个,很有用。

但是这个重启机制跟 cpu 占用 100% 应该关系不大,如果没有更多信息的话,比如服务是干嘛的,做了啥,很难给意见。我好奇的是你第三步用 '&' 去做会让服务占用 cpu 到 100%,所以看起来这个服务本身是有问题的,可能有计算密集的 bug,也可能有 IO 方面的问题,因为你提到一直有输出。

KissSis answered 11 years, 8 months ago

Your Answer