Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
efeef5b4f0 | ||
|
|
0eb08dd8ae | ||
|
|
92ba6e0ba7 | ||
|
|
2b90c48eb4 |
+3
-137
@@ -1,138 +1,4 @@
|
|||||||
foreman(1) -- manage Procfile-based applications
|
Foreman
|
||||||
================================================
|
=======
|
||||||
|
|
||||||
## SYNOPSIS
|
See the [man page](http://ddollar.github.com/foreman) for usage.
|
||||||
|
|
||||||
`foreman start [process]`<br>
|
|
||||||
`foreman export <var>format</var> [location]`
|
|
||||||
|
|
||||||
## DESCRIPTION
|
|
||||||
|
|
||||||
**Foreman** is a manager for Procfile-based applications. Its aim is to
|
|
||||||
abstract away the details of the Procfile format, and allow you to either run
|
|
||||||
your application directly or export it to some other process management
|
|
||||||
format.
|
|
||||||
|
|
||||||
## RUNNING
|
|
||||||
|
|
||||||
`foreman start` is used to run your application directly from the command line.
|
|
||||||
|
|
||||||
If no additional parameters are passed, foreman will run one instance of each
|
|
||||||
type of process defined in your Procfile.
|
|
||||||
|
|
||||||
If a parameter is passed, foreman will run one instance of the specified
|
|
||||||
application type.
|
|
||||||
|
|
||||||
The following options control how the application is run:
|
|
||||||
|
|
||||||
* `-s`, `--screen`:
|
|
||||||
Run the application as a series of screen windows rather than interleaved
|
|
||||||
in stdout.
|
|
||||||
|
|
||||||
## EXPORTING
|
|
||||||
|
|
||||||
`foreman export` is used to export your application to another process
|
|
||||||
management format.
|
|
||||||
|
|
||||||
An location to export can be passed as an argument. This argument may be
|
|
||||||
either required or optional depending on the export format.
|
|
||||||
|
|
||||||
The following options control how the application is run:
|
|
||||||
|
|
||||||
* `-a`, `--app`:
|
|
||||||
Use this name rather than the application's root directory name as the
|
|
||||||
name of the application when exporting.
|
|
||||||
|
|
||||||
* `-c`, `--concurrency`:
|
|
||||||
Specify the number of each process type to run. The value passed in
|
|
||||||
should be in the format `process=num,process=num`
|
|
||||||
|
|
||||||
* `-l`, `--log`:
|
|
||||||
Specify the directory to place process logs in.
|
|
||||||
|
|
||||||
* `-p`, `--port`:
|
|
||||||
Specify which port to use as the base for this application. Should be
|
|
||||||
a multiple of 1000.
|
|
||||||
|
|
||||||
* `-u`, `--user`:
|
|
||||||
Specify the user the application should be run as. Defaults to the
|
|
||||||
app name
|
|
||||||
|
|
||||||
## OPTIONS
|
|
||||||
|
|
||||||
These options control all modes of foreman's operation.
|
|
||||||
|
|
||||||
* `-f`, `--procfile`:
|
|
||||||
Specify an alternate location for the application's Procfile. This file's
|
|
||||||
containing directory will be assumed to be the root directory of the
|
|
||||||
application.
|
|
||||||
|
|
||||||
## EXPORT FORMATS
|
|
||||||
|
|
||||||
foreman currently supports the following output formats:
|
|
||||||
|
|
||||||
* inittab
|
|
||||||
|
|
||||||
* upstart
|
|
||||||
|
|
||||||
## INITTAB EXPORT
|
|
||||||
|
|
||||||
Will export a chunk of inittab-compatible configuration:
|
|
||||||
|
|
||||||
# ----- foreman example processes -----
|
|
||||||
EX01:4:respawn:/bin/su - example -c 'PORT=5000 bundle exec thin start >> /var/log/web-1.log 2>&1'
|
|
||||||
EX02:4:respawn:/bin/su - example -c 'PORT=5100 bundle exec rake jobs:work >> /var/log/job-1.log 2>&1'
|
|
||||||
# ----- end foreman example processes -----
|
|
||||||
|
|
||||||
## UPSTART EXPORT
|
|
||||||
|
|
||||||
Will create a series of upstart scripts in the location you specify. Scripts
|
|
||||||
will be structured to make the following commands valid:
|
|
||||||
|
|
||||||
`start appname`
|
|
||||||
|
|
||||||
`stop appname-processname`
|
|
||||||
|
|
||||||
`restart appname-processname-3`
|
|
||||||
|
|
||||||
## PROCFILE
|
|
||||||
|
|
||||||
A Procfile should contain both a name for the process and the command used
|
|
||||||
to run it.
|
|
||||||
|
|
||||||
web bundle exec thin start
|
|
||||||
job bundle exec rake jobs:work
|
|
||||||
|
|
||||||
## EXAMPLES
|
|
||||||
|
|
||||||
Start one instance of each process type, interleave the output on stdout:
|
|
||||||
|
|
||||||
$ foreman start
|
|
||||||
|
|
||||||
Export the application in upstart format:
|
|
||||||
|
|
||||||
$ foreman export upstart /etc/init
|
|
||||||
|
|
||||||
Run one process type from the application defined in a specific Procfile:
|
|
||||||
|
|
||||||
$ foreman start alpha -p ~/app/Procfile
|
|
||||||
|
|
||||||
## COPYRIGHT
|
|
||||||
|
|
||||||
Foreman is Copyright (C) 2010 David Dollar <http://daviddollar.org>
|
|
||||||
|
|
||||||
|
|
||||||
[SYNOPSIS]: #SYNOPSIS "SYNOPSIS"
|
|
||||||
[DESCRIPTION]: #DESCRIPTION "DESCRIPTION"
|
|
||||||
[RUNNING]: #RUNNING "RUNNING"
|
|
||||||
[EXPORTING]: #EXPORTING "EXPORTING"
|
|
||||||
[OPTIONS]: #OPTIONS "OPTIONS"
|
|
||||||
[EXPORT FORMATS]: #EXPORT-FORMATS "EXPORT FORMATS"
|
|
||||||
[INITTAB EXPORT]: #INITTAB-EXPORT "INITTAB EXPORT"
|
|
||||||
[UPSTART EXPORT]: #UPSTART-EXPORT "UPSTART EXPORT"
|
|
||||||
[PROCFILE]: #PROCFILE "PROCFILE"
|
|
||||||
[EXAMPLES]: #EXAMPLES "EXAMPLES"
|
|
||||||
[COPYRIGHT]: #COPYRIGHT "COPYRIGHT"
|
|
||||||
|
|
||||||
|
|
||||||
[foreman(1)]: foreman.1.html
|
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ task :man do
|
|||||||
ENV['RONN_MANUAL'] = "Foreman Manual"
|
ENV['RONN_MANUAL'] = "Foreman Manual"
|
||||||
ENV['RONN_ORGANIZATION'] = "Foreman #{Foreman::VERSION}"
|
ENV['RONN_ORGANIZATION'] = "Foreman #{Foreman::VERSION}"
|
||||||
sh "ronn -w -s toc -r5 --markdown man/*.ronn"
|
sh "ronn -w -s toc -r5 --markdown man/*.ronn"
|
||||||
sh "cp man/foreman.1.markdown README.markdown"
|
|
||||||
sh "git add README.markdown"
|
sh "git add README.markdown"
|
||||||
sh "git commit -m 'update readme' || echo 'nothing to commit'"
|
sh "git commit -m 'update readme' || echo 'nothing to commit'"
|
||||||
end
|
end
|
||||||
|
|||||||
+2
-2
@@ -5,11 +5,11 @@
|
|||||||
|
|
||||||
Gem::Specification.new do |s|
|
Gem::Specification.new do |s|
|
||||||
s.name = %q{foreman}
|
s.name = %q{foreman}
|
||||||
s.version = "0.5.1"
|
s.version = "0.6.0"
|
||||||
|
|
||||||
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
||||||
s.authors = ["David Dollar"]
|
s.authors = ["David Dollar"]
|
||||||
s.date = %q{2010-06-30}
|
s.date = %q{2010-07-06}
|
||||||
s.default_executable = %q{foreman}
|
s.default_executable = %q{foreman}
|
||||||
s.description = %q{Process manager for applications with multiple components}
|
s.description = %q{Process manager for applications with multiple components}
|
||||||
s.email = %q{ddollar@gmail.com}
|
s.email = %q{ddollar@gmail.com}
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
module Foreman
|
module Foreman
|
||||||
|
|
||||||
VERSION = "0.5.1"
|
VERSION = "0.6.0"
|
||||||
|
|
||||||
class AppDoesNotExist < Exception; end
|
class AppDoesNotExist < Exception; end
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ class Foreman::Export::Inittab < Foreman::Export::Base
|
|||||||
def export(fname=nil, options={})
|
def export(fname=nil, options={})
|
||||||
app = options[:app] || File.basename(engine.directory)
|
app = options[:app] || File.basename(engine.directory)
|
||||||
user = options[:user] || app
|
user = options[:user] || app
|
||||||
log_root = options[:log] || "/var/log"
|
log_root = options[:log] || "/var/log/#{app}"
|
||||||
|
|
||||||
concurrency = parse_concurrency(options[:concurrency])
|
concurrency = parse_concurrency(options[:concurrency])
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user