mirror of
https://github.com/mgerb/mywebsite
synced 2026-01-12 02:42:48 +00:00
Added files
This commit is contained in:
3
node_modules/forever/bin/forever
generated
vendored
Executable file
3
node_modules/forever/bin/forever
generated
vendored
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
require('../lib/forever').cli.start();
|
||||
87
node_modules/forever/bin/monitor
generated
vendored
Executable file
87
node_modules/forever/bin/monitor
generated
vendored
Executable file
@@ -0,0 +1,87 @@
|
||||
var fs = require('fs'),
|
||||
path = require('path'),
|
||||
forever = require(path.resolve(__dirname, '..', 'lib', 'forever')),
|
||||
started;
|
||||
|
||||
//
|
||||
// ### @function (file, pid)
|
||||
// #### @file {string} Location of the pid file.
|
||||
// #### @pid {number} pid to write to disk.
|
||||
// Write the pidFile to disk for later use
|
||||
//
|
||||
function writePid(file, pid) {
|
||||
fs.writeFileSync(file, pid, 'utf8');
|
||||
}
|
||||
|
||||
//
|
||||
// ### @function start (options)
|
||||
// #### @options {Object} Options for the `forever.Monitor` instance.
|
||||
// Starts the child process and disconnects from the IPC channel.
|
||||
//
|
||||
function start(options) {
|
||||
var script = process.argv[2],
|
||||
monitor = new forever.Monitor(script, options);
|
||||
|
||||
forever.logEvents(monitor);
|
||||
monitor.start();
|
||||
|
||||
monitor.on('start', function () {
|
||||
//
|
||||
// This starts an nssocket server, which the forever CLI uses to
|
||||
// communicate with this monitor process after it's detached.
|
||||
// Without this, `forever list` won't show the process, even though it
|
||||
// would still be running in the background unaffected.
|
||||
//
|
||||
forever.startServer(monitor);
|
||||
|
||||
//
|
||||
// Disconnect the IPC channel, letting this monitor's parent process know
|
||||
// that the child has started successfully.
|
||||
//
|
||||
process.disconnect();
|
||||
|
||||
//
|
||||
// Write the pidFile to disk
|
||||
//
|
||||
writePid(options.pidFile, monitor.child.pid);
|
||||
});
|
||||
|
||||
//
|
||||
// When the monitor restarts update the pid in the pidFile
|
||||
//
|
||||
monitor.on('restart', function () {
|
||||
writePid(options.pidFile, monitor.child.pid);
|
||||
});
|
||||
|
||||
|
||||
//
|
||||
// When the monitor stops or exits, remove the pid and log files
|
||||
//
|
||||
function cleanUp() {
|
||||
try {
|
||||
fs.unlinkSync(options.pidFile);
|
||||
}
|
||||
catch(e) {}
|
||||
}
|
||||
monitor.on('stop', cleanUp);
|
||||
monitor.on('exit', cleanUp);
|
||||
}
|
||||
|
||||
//
|
||||
// When we receive the first message from the parent process, start
|
||||
// an instance of `forever.Monitor` with the options supplied.
|
||||
//
|
||||
process.on('message', function (data) {
|
||||
//
|
||||
// TODO: Find out if this data will ever get split into two message events.
|
||||
//
|
||||
var options = JSON.parse(data.toString());
|
||||
|
||||
// inherits configuration from parent process if exists.
|
||||
options && options._loadedOptions && (forever.load(options._loadedOptions), delete options._loadedOptions);
|
||||
|
||||
if (!started) {
|
||||
started = true;
|
||||
start(options);
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user