Live data from Hacker News

Daemon Showdown: Upstart vs. Runit vs. Systemd vs. Circus vs. God

tech.cueup.com

1–10 of 68 posts

Re: Daemon Showdown: Upstart vs. Runit vs. Systemd vs. Circus vs. God

#4
This didn't really seems like a comparison, more of a description. I was hoping for a bit more.

We're currently using supervisord but we've had to hack it to support more than 200 workers, and I'd like something with the ability to change the number of workers dynamically.

Re: Daemon Showdown: Upstart vs. Runit vs. Systemd vs. Circus vs. God

#5
We're using Bluepill, which has a friendly DSL to define CPU and RAM usage limitations. This can be quite handy if you need to occasionally restart a process with memory leaks or the like.

I believe God and Monit have similar capabilities, although I haven't used them personally.

Re: Daemon Showdown: Upstart vs. Runit vs. Systemd vs. Circus vs. God

#6
post #3

Monit is another standard program, but I think these these things being compared are really not similar. Aren't upstart and systemd replacements for init.d runlevel scripts? While God & Monit make sure programs are running. I suppose there is overlap.

systemd encompasses process monitoring functionality by design, which is a strength imho, though it is subject to the "all your eggs in one basket" criticism.

Re: Daemon Showdown: Upstart vs. Runit vs. Systemd vs. Circus vs. God

#7

This didn't really seems like a comparison, more of a description. I was hoping for a bit more. We're currently using supervisord but we've had to hack it to support more than 200 workers, and I'd like something with the ability to change the number of workers dynamically.

We use Supervisor integrated with Zookeeper to dynamically adjust the number of worker processes.

Re: Daemon Showdown: Upstart vs. Runit vs. Systemd vs. Circus vs. God

#8
I still prefer Bernsteins daemon-tools. I first used them when I had to deploy qmail and now I use them to manage Python webapplications. The default logging option is a bit weird, but the simplicity is a real winner for me.

I don't like Upstart, I don't agree that it's "admirably simple to use", it needlessly complex. For what I do, I don't need or want to care about runlevels, I always want respawning and I don't like the syntax of the configuration.

systemd seems like a really complex solution to a very simple problem, but I never used it.

Supervisord while being well documented and popular again seems to complicate what I want to do. Again I dislike the configuration, I fail to see why a shell script isn't better.

Runit I never used, because why would I replace daemon-tools with, what was when I first read about it, just a daemon-tools clone, made by people who didn't like Bernsteins licensing. I guess it's what I would most likely go for, if daemon-tools where not available.

The rest I never heard of.

Re: Daemon Showdown: Upstart vs. Runit vs. Systemd vs. Circus vs. God

#9
I wouldn't use god. It's had issues crashing or misbehaving in the past. I've found monit very stable if a little awkward to configure correctly.

Today I would use systemd with monit for additional monitoring. systemd ensures that the same environment is used regardless of how it is invoked, and the units are extremely simple. Monit can ensure a running server is behaving (memory limits, CPU limits, testing HTTP) and rely on systemctl for restarting processes.

Re: Daemon Showdown: Upstart vs. Runit vs. Systemd vs. Circus vs. God

#10
post #3

Monit is another standard program, but I think these these things being compared are really not similar. Aren't upstart and systemd replacements for init.d runlevel scripts? While God & Monit make sure programs are running. I suppose there is overlap.

There's no clear delineation here. Upstart and Systemd are init.d replacements, both of which can make sure that programs are up and running, and incorporate some basic process monitoring. Runit is similar, and can replace init.d, but will happily run as just another process. God can't replace init.d, but it can easily handle the daemonize-and-keep-running functionality that's at the core of what we want from all this stuff. In addition, God can do some health checking, for things like memory and CPU consumption. IIRC Monit doesn't actually start other programs under itself, but it can be configured to watch running programs, and kick them if necessary.

If you have a clean and useful taxonomy for this stuff, I'd be interested in hearing it.

Post reply on HN