TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Process Managers: The Good, the Bad, and the Ugly

53 点作者 mattlong大约 12 年前

12 条评论

gyepi大约 12 年前
For years, I used daemontools (it still runs a bunch of machines) then moved to runit, which follows the same philosophy. Both are excellent tools and have worked extremely well under many different circumstances. Simple tools that do one thing extremely well. Every managed service requires a short, 1 to 3 line, script to actually start the target program, which may, initially, seem off-putting, but actually provides the often missing opportunity to easily customize the program environment.<p>BTW, runit also comes with svlogd and chpst, both of which have frequently proved invaluable. The latter is useful in its own right.<p>Most of the tools discussed either lack flexibility, try to do too much, or simply don't offer any benefits over runit and company.
评论 #5597933 未加载
jkmcf大约 12 年前
FWIW, from a few months ago:<p><a href="http://jtimberman.housepub.org/blog/2012/12/29/process-supervision-solved-problem/" rel="nofollow">http://jtimberman.housepub.org/blog/2012/12/29/process-super...</a><p>tl;dr use runit
bradleybuda大约 12 年前
I've always used (and loved) daemontools / runit (<a href="http://smarden.org/runit/" rel="nofollow">http://smarden.org/runit/</a>) - it's a little bit minimal, but it's well-documented, does what it claims to do, and it's rock-solid.
评论 #5597117 未加载
cmwright大约 12 年前
Was surprised not to see God (<a href="http://godrb.com/" rel="nofollow">http://godrb.com/</a>) here, has it fallen from grace?
评论 #5597140 未加载
ionelm大约 12 年前
The article is a bit wrong about supervisord. You can load environment variables from a defaults file - just use a wrapper script. Eg:<p><pre><code> #!/bin/sh source /etc/myservice/defaults exec celeryd $@ </code></pre> And start that from supervisord.<p>Also, another nice thing, very useful for daemons that spawn their own subprocesses is killasgroup option. This is worth mentioning given the celery examples - celery can and will leave orphan processes around between restarts ...
simonw大约 12 年前
I swear this is one of the hardest problems in computer science, which is crazy - how hard should it really be to say "run this process, and restart it if it crashes"?
评论 #5602161 未加载
sciurus大约 12 年前
"The convenience of custom commands like /etc/init.d/nginx configtest to check my nginx configuration syntax without affecting the running nginx service is useful enough to keep me from migrating my nginx daemonization to Upstart."<p>Needing to run "nginx -t" instead of "/etc/init.d/nginx configtest" seems like a minor tradeoff for the benefits Upstart provides. It's even shorter to type!
duggan大约 12 年前
Timely, since I spent some time over the weekend digging into the internals of Supervisor.<p>One of the most interesting features, for me, is that Supervisor has an XML-RPC interface[1], allowing for some creative interaction with supervisor and the processes it manages.<p>[1] <a href="http://supervisord.org/api.html" rel="nofollow">http://supervisord.org/api.html</a>
jdnier大约 12 年前
Another recent comparison: <a href="http://tech.cueup.com/blog/2013/03/08/running-daemons/" rel="nofollow">http://tech.cueup.com/blog/2013/03/08/running-daemons/</a>
obviouslygreen大约 12 年前
Thanks very much for this! It's great to have someone else's insight into several of these.
评论 #5597180 未加载
jrochkind1大约 12 年前
This is a super helpful writeup on a topic I needed an intro to, thanks so much!
评论 #5597167 未加载
cmccabe大约 12 年前
systemd is the way to go. Don't waste time debugging someone's half-baked pile of {shell,Perl,Python} scripts