mirror of
https://github.com/Unitech/pm2.git
synced 2025-12-08 20:35:53 +00:00
61 lines
1.6 KiB
JavaScript
61 lines
1.6 KiB
JavaScript
/**
|
|
* Copyright 2013 the PM2 project authors. All rights reserved.
|
|
* Use of this source code is governed by a license that
|
|
* can be found in the LICENSE file.
|
|
*/
|
|
// Inject custom modules
|
|
if (process.env.pmx !== "false") {
|
|
require('pmx').init({
|
|
transactions: process.env.km_link == 'true' && process.env.trace == 'true' || false,
|
|
http: process.env.km_link == 'true' || false
|
|
});
|
|
}
|
|
|
|
if (typeof(process.env.source_map_support) != "undefined" &&
|
|
process.env.source_map_support !== "false") {
|
|
require('source-map-support').install();
|
|
}
|
|
|
|
// Cron restart feature
|
|
if (process.env.cron_restart) {
|
|
var cron_pattern = process.env.cron_restart;
|
|
var cronJob = require('cron').CronJob;
|
|
var job = new cronJob({
|
|
cronTime: cron_pattern,
|
|
onTick: function () {
|
|
if (process.connected && process.send) {
|
|
process.send({
|
|
'cron_restart': 1
|
|
});
|
|
} else {
|
|
process.exit(0);
|
|
}
|
|
},
|
|
start: false
|
|
});
|
|
job.start();
|
|
}
|
|
|
|
|
|
// Rename the process
|
|
process.title = process.env.PROCESS_TITLE || 'node ' + process.env.pm_exec_path;
|
|
|
|
if (process.connected &&
|
|
process.send &&
|
|
process.versions &&
|
|
process.versions.node)
|
|
process.send({
|
|
'node_version': process.versions.node
|
|
});
|
|
|
|
// Require the real application
|
|
if (process.env.pm_exec_path)
|
|
require('module')._load(process.env.pm_exec_path, null, true);
|
|
else
|
|
throw new Error('Could not _load() the script');
|
|
|
|
// Change some values to make node think that the user's application
|
|
// was started directly such as `node app.js`
|
|
process.mainModule.loaded = false;
|
|
require.main = process.mainModule;
|