solenoid
Jump start an application. solenoid
is a binary script that does the following:
- Start an app:
solenoid start -p PIDFILE -u USERNAME -a APP_NAME -v APP_VERSION
- Stop an app:
solenoid stop -p PIDFILE
- Restart an app:
solenoid restart -p PIDFILE
Solenoid Start logic
When solenoid
starts an application it performs the following operation:
- Creates the run direction
options.runDir
- Creates the
solenoid
user - Fetches the application snapshot to
RUN_DIR/snapshot.tgz
- Unpacks the snapshot to
RUN_DIR/snapshot/package
- Removes the packed snapshot at
RUN_DIR/snapshot.tgz
- Reads the
package.json
atRUN_DIR/snapshot/package/package.json
- Determines the
node
engine. Defaults tooptions.engines.node.default || 0.6.x
. - Reads the ENVVARS from
-e|--app-env
(if any). - Restricts the filesystem to the
solenoid
user - Gets the
uid
andgid
of thesolenoid
user - Starts the application using
aeternum
andforza
.
CLI Arguments
-u, --app-user Username of the owner of the application.
-a, --app-name Name of the application.
-v, --app-version Version of the application.
-e, --app-env Environment vars as serialized JSON.
-p, --pidfile Location of the pidfile on disk of the aeternum process.
Configuration
solenoid
expects a configuration file $HOME/.solenoidconf
with the following options:
"storage"://// Valid pkgcloud storage provider configuration//"provider": "rackspace""username": "rackspace-username""apiKey": "rackspace-apiKey""container": "rackspace-container""region": "ord""instruments"://// Instruments provider to send metrics and events to.//"host": "127.0.0.1""port": 8556//// Directory to run applications within.//"runDir": "/opt/run""engines":"node":"default": "0.6.x""path": "/opt/engines/node"