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.