README.md in einhorn-0.7.4 vs README.md in einhorn-0.8.2

- old
+ new

@@ -192,10 +192,21 @@ ### Command name You can set the name that Einhorn and your workers show in PS. Just pass `-c <name>`. +### Re exec + +You can use the `--reexec-as` option to replace the `einhorn` command with a command or script of your own. This might be useful for those with a Capistrano like deploy process that has changing symlinks. To ensure that you are following the symlinks you could use a bash script like this. + + #!/bin/bash + + cd <symlinked directory> + exec /usr/local/bin/einhorn "$@" + +Then you could set `--reexec-as=` to the name of your bash script and it will run in place of the plain einhorn command. + ### Options -b, --bind ADDR Bind an address and add the corresponding FD via the environment -c, --command-name CMD_NAME Set the command name in ps to this value -d, --socket-path PATH Where to open the Einhorn command socket @@ -215,15 +226,22 @@ --reexec-as=CMDLINE Substitute CMDLINE for \"einhorn\" when upgrading --nice MASTER[:WORKER=0][:RENICE_CMD=/usr/bin/renice] Unix nice level at which to run the einhorn processes. If not running as root, make sure to ulimit -e as appopriate. --with-state-fd STATE [Internal option] With file descriptor containing state --upgrade-check [Internal option] Check if Einhorn can exec itself and exit with status 0 before loading code + -t, --signal-timeout=T If children do not react to signals after T seconds, escalate to SIGKILL --version Show version ## Contributing +### Development Status + +Einhorn is still in active operation at Stripe, but we are not maintaining +Einhorn actively. PRs are very welcome, and we will review and merge, +but we are unlikely to triage and fix reported issues without code. + Contributions are definitely welcome. To contribute, just follow the usual workflow: 1. Fork Einhorn 2. Create your feature branch (`git checkout -b my-new-feature`) @@ -248,9 +266,28 @@ `example/thin_example` for an example of running Thin under Einhorn. ## Compatibility Einhorn runs in Ruby 2.0, 2.1, and 2.2 + +The following libraries ease integration with Einhorn with languages other than +Ruby: + +- **[go-einhorn](https://github.com/stripe/go-einhorn)**: Stripe's own library + for *talking* to an einhorn master (doesn't wrap socket code). +- **[goji](https://github.com/zenazn/goji/)**: Go (golang) server framework. The + [`bind`](https://godoc.org/github.com/zenazn/goji/bind) and + [`graceful`](https://godoc.org/github.com/zenazn/goji/graceful) + packages provide helpers and HTTP/TCP connection wrappers for Einhorn + integration. +- **[github.com/CHH/einhorn](https://github.com/CHH/einhorn)**: PHP library +- **[thin-attach\_socket](https://github.com/ConradIrwin/thin-attach_socket)**: + run `thin` behind Einhorn +- **[baseplate](https://reddit.github.io/baseplate/cli/serve.html)**: a + collection of Python helpers and libraries, with support for running behind + Einhorn + +*NB: this list should not imply any official endorsement or vetting!* ## About Einhorn is a project of [Stripe](https://stripe.com), led by [Carl Jackson](https://github.com/zenazn). Feel free to get in touch at info@stripe.com.