首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图通过厨师启动statsD

试图通过厨师启动statsD
EN

Stack Overflow用户
提问于 2015-04-27 11:01:19
回答 2查看 203关注 0票数 2

我试图在ubuntu上启动statsD,但我遇到了一些问题。

如果我开始,它可以工作,但阻止厨师继续,但它的工作,并出现在石墨。

但是,如果我像这样启动它(或者使用其他方法在后台启动它):

(/usr/bin/node /opt/statsd/stats.js /opt/statsd/localConfig.js) &

它不妨碍厨师,但石墨中没有任何东西出现,但是我知道它仍然在运行,因为

ps aux | grep stat

显示该命令正在运行(不包括grep命令)。

我试过用forever.js来做这件事,但是npm只是报告说它有failed to fetch from registry: forever

编辑:

好吧,我设法让它开始使用nohup /usr/bin/node /opt/statsd/stats.js /opt/statsd/localConfig.js

这会启动statsD (很好),它不会阻塞主厨(也很好),但是现在当我尝试sudo killall -r stat时,它拒绝停止运行

事后看来,这是因为它不能阻止它接收到杀伤信号。

因此,问题是如何让它在后台使用nohup (或类似于它)运行,但仍然能够停止statsD,以便重新启动它(对于配置中的任何潜在更改)。

编辑:

好的,通过将start命令更改为:nohup /usr/bin/node /opt/statsd/stats.js /opt/statsd/localConfig.js >> /var/log/statsd.log 2>&1& \n echo $! /opt/statsd/statds.pid,我能够存储pid,然后使用

kill -9 `/opt/statsd/statsd.pid`

我能够终止这个进程,但是它仍然让rcp.statd -L运行,它有一个单独的pid。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-27 13:00:19

好的,我成功地创建了一个bash命令,它将找到并杀死任何包含单词stat的进程;对于我来说,这个命令工作得很好,因为只有与statd相关的进程中有stat

因此,启动statD的命令是:nohup /usr/bin/node /opt/statsd/stats.js /opt/statsd/localConfig.js >> /var/log/statsd.log 2>&1&

有点长,但我用的是绝对路径。

要停止的命令是:ps aux | awk '/stat/ {print $2}' | xargs kill -9

非常简单,甚至更好的是,当我需要重新启动时,我不需要执行整个“将pid存储在txt文件中”来杀死statsd。

票数 0
EN

Stack Overflow用户

发布于 2015-04-28 13:09:22

最好的方法可能是让Chef安装init脚本并让init守护进程处理所有statsd守护进程管理。这样,您就可以使用Chef的service资源来管理实例。

StatsD在Debian资源中包含一个示例init脚本,您可以使用该资源,也可以根据您的需要进行调整。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29893919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档