20392d98a15dbf5c203e7c0292e5526c07b33927
This is a better fix for several reasons: - It's more portable; the arguments/options to 'ps' vary widely across platforms. - Killing children by forking yet more children (i.e., via backtick) is problematic when you're trying to kill processes because of resource starvation. - Processes should not signal processes other than their own children, especially in a generic task-runner like Foreman. If the signal should propagate, then the sub-process should propagate signals to its children itself. There's no way to know what cleanup or preparation is necessary for a clean shutdown (e.g., SIGINT/SIGTERM), and in what order grandchild processes should be shut down to properly release locks, close files, etc. - foreman-runner doesn't (shouldn't?) create grandchild processes; the last thing it does is `exec` the program it's launching, which will replace the program of the *current* process with the one being started up.
Foreman
Manage Procfile-based applications
| If you have... | Install with... |
|---|---|
| Ruby (MRI, JRuby, Windows) | $ gem install foreman |
| Mac OS X | foreman.pkg |
Getting Started
Documentation
Ports
Authors
Created and maintained by
David Dollar
Patches contributed by
License
Foreman is licensed under the MIT license.
See LICENSE for the full license text.
Languages
Ruby
91.9%
HTML
5.9%
Shell
1.9%
Procfile
0.3%