Automated Process Reaper for Unix Systems
License
victori/satan
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
master
Could not load branches
Nothing to show
Could not load tags
Nothing to show
{{ refName }}
default
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code
-
Clone
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.
- Open with GitHub Desktop
- Download ZIP
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Automated Process Reaper for Unix Systems Satan does just one thing, and one thing only; kill processes. Satan was designed to work with Solaris’ SMF self-healing properties. Let Satan kill while SMF revive. The Satan name is a play off of the God Monitor http://god.rubyforge.org/ The reason Satan was developed was because God overlaps too much in functionality with SMF so it is not practical to run on Solaris. Features - No dependencies aside from Ruby - Email notification on reaped processes - Easy to use DSL to define reaping rules - HTTP checks to reap based on non-200 response code INSTALLATION - Install satan on your run path: /opt/bin;/opt/sfw/bin;/usr/bin - Edit satan.smf to your liking and import: svccfg import satan.smf HOW TO USE - /opt/bin/satan ~/satan.cfg OR - via SMF, see installation block. The configuration is all done in Ruby, clean and simple. Satan.watch do |s| s.name = "jvm instances" # name of job s.user = "webservd" # under what user s.group = "webservd" # under what group s.deamon = "java" # deamon binary name to grep for s.args = nil # globally look for specific arguments, optional s.debug = true # if to write out debug information s.safe_mode = false # If in safe mode, satan will not kill ;-( s.interval = 10.seconds # interval to run at to collect statistics s.sleep_after_kill = 1.minute # sleep after killing, satan is tired! s.contact = "victori@fabulously40.com" # admin contact, optional if you want email alerts s.kill_if do |process| process.condition(:cpu) do |cpu| # on cpu condition cpu.name = "50% CPU limit" # name for job cpu.args = "jetty" # make sure this is a jetty process, optional cpu.above = 48.percent # if above certain percentage cpu.times = 5 # how many times we can hit this condition before killing end process.condition(:memory) do |memory| # on memory condition memory.name = "850MB limit" # name for job memory.args = "jetty" # make sure this is a jetty process, optional memory.above = 850.megabytes # limit for memory use memory.times = 5 # how many times we can hit this condition before killing end # ActiveMQ tends to die on us under heavy load so we need the power of satan! process.condition(:http) do |http| # on http condition http.name = "HTTP ActiveMQ Check" # name for job http.args = "8161" # look for specific app arguments # to associate app to URI http.uri = "http://localhost:8161/admin/queues.jsp" # the URI http.times = 5 # how many times before the kill end end end
About
Automated Process Reaper for Unix Systems
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published