pandastrike / fate Goto Github PK
View Code? Open in Web Editor NEWTools for running a service comprising multiple processes
License: MIT License
Tools for running a service comprising multiple processes
License: MIT License
Some companies will only use gems with a certain license.
The canonical and easy way to check is via the gemspec
via e.g.
spec.license = 'MIT'
# or
spec.licenses = ['MIT', 'GPL-2']
There is even a License Finder to help companies ensure all gems they use
meet their licensing needs. This tool depends on license information being available in the gemspec.
Including a license in your gemspec is a good practice, in any case.
How did I find you?
I'm using a script to collect stats on gems, originally looking for download data, but decided to collect licenses too,
and make issues for missing ones as a public service :)
https://gist.github.com/bf4/5952053#file-license_issue-rb-L13 So far it's going pretty well
To allow interception of signals, run all commands in a different process group.
problem caused by threaded use of @threads
Display after service is fully loaded.
Provide information about the help command, autocompletion, etc.
E.g.
{
"versions": {
"redis": {
"version": "2.4.16", "check": "redis-server --version"
},
"mongodb": {
"version": "2.0.6", "check": "mongod --version", "match": "\bv(\d+\.\d+\.\d+)\b"
},
"node.js": {
"version": "0.8.3", "check": "node --version", "match": "\bv(\d+\.\d+\.\d+)\b"
},
"coffeescript": {
"version": "1.3.3", "check": "coffee --version"
},
"ruby": {
"version": "1.9.3", "check": "ruby --version"
},
},
"commands": {
}
}
/usr/local/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/fate-0.2.12/lib/fate/logger.rb:77: [BUG] Segmentation fault
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
-- Control frame information -----------------------------------------------
c:0007 p:0012 s:0030 b:0029 l:000028 d:000028 METHOD /usr/local/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/fate-0.2.12/lib/fate/logger.rb:77
c:0006 p:0034 s:0024 b:0023 l:000022 d:000022 METHOD /usr/local/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/fate-0.2.12/lib/fate/logger.rb:32
c:0005 p:---- s:0018 b:0018 l:000017 d:000017 FINISH
c:0004 p:---- s:0016 b:0016 l:000015 d:000015 CFUNC :copy_stream
c:0003 p:0126 s:0011 b:0011 l:000228 d:000010 BLOCK /usr/local/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/fate-0.2.12/lib/fate/process_manager.rb:100
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:---- s:0002 b:0002 l:000001 d:000001 TOP
-- Ruby level backtrace information ----------------------------------------
/usr/local/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/fate-0.2.12/lib/fate/process_manager.rb:100:in `block in spawn'
/usr/local/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/fate-0.2.12/lib/fate/process_manager.rb:100:in `copy_stream'
/usr/local/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/fate-0.2.12/lib/fate/logger.rb:32:in `write'
/usr/local/rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/fate-0.2.12/lib/fate/logger.rb:77:in `format'
-- C level backtrace information -------------------------------------------
Segmentation fault
This looks to be a bug in Ruby's IO.copy_stream method, but the only references I could find are to non-Linux platforms.
Cygwin: http://www.ruby-forum.com/topic/214105
Bug report in Japanese possibly about Mac OS X: http://bugs.ruby-lang.org/issues/4866. After squinting at the Google Translated version, I think that the bug was closed because the assignee couldn't reproduce it on non Mac platforms.
I can avoid the use of IO.copy_stream by manually relaying from one IO object to another.
allow it to take the name of another command as an argument.
stop system vs stop system.redis.1
in one application, the shutdowns are happening in apparently random order
This method would start up and shut down processes as needed to match the set of commands passed in as an argument. It would not shut down any running processes that are still desired.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.