Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
}
console.log("server started...");
});
// set-up a message handler to process messages FROM slaves
pm2.launchBus(function(err, bus) {
bus.on('process:msg', messageFromServer);
bus.on('log:out', function(data) {
console.log(data.data);
});
});
}
};
//pm2.connect(true, callback);
pm2.connect(callback);
} else if (server === "stop") {
// shutdown
pm2.disconnect(function() {
console.log("disconnected....");
// kill the master controller and all slave miners
pm2.killDaemon(function() {
console.log("daemon killed....");
process.exit(0);
});
// return control to the caller
console.log("server shutdown...");
});
} else {
program.help();
process.exit(0);
function deleteTask(name) {
pm2.connect(function (err) {
if (err) {
console.error(err);
process.exit(2);
}
pm2.describe(name, function (err, apps) {
if (err) {
pm2.disconnect(); // Disconnects from PM2
throw err;
}
// 已存在的场景才需要删除
if (apps.length && apps[0].name === name) {
pm2.delete(name, function (err, apps) {
console.log('Stop local server success!');
pm2.disconnect(); // Disconnects from PM2
const complete = () => {
npmRunScript(`pm2 logs`);
if (open) return opn(`http://localhost:${process.env.SERVER_PORT}/`);
};
// 遇到错误
const encounterError = e => {
const error = e instanceof Error ? e : new Error(e);
exitHandler({ error: true });
throw error;
};
// 连接 PM2
// console.log('noDaemon', !global)
try {
pm2.connect(!global, async err => {
if (err) {
// console.error(err)
process.exit(2);
}
// eslint-disable-next-line no-console
console.log(
` ` +
chalk.yellowBright('[koot/build] ') +
__('build.build_start', {
type: chalk.cyanBright(__(`appType.${appType}`)),
stage: chalk.green('client'),
env: chalk.green('dev')
})
);
isPortTaken(25, function (error, available) {
if (error || !available) {
console.log("PORT 25 is not available", "\nTRY", "authbind --deep galleon start".magenta, "\nFind More info about authbind -> https://github.com/schahriar/Galleon/blob/master/tutorials/AUTHBIND.md")
process.exit(0);
}
// Start a script on the current folder
/* BADPATCH -- There are significant issues with providing PM2 with a local script (https://github.com/schahriar/Galleon/issues/2). Start.JS should implement fallback methods and use a launch script inside the .galleon folder by default. */
pm2.start(path.resolve(__dirname, '../galleon.js'), { name: 'galleon-instance', force: true, scriptArgs: process.argv, nodeArgs: "--max_old_space_size=300" }, function (err, proc) {
if (err) return new Error(err);
// Get all processes running
pm2.list(function (err, process_list) {
console.log("Process Started".green);
console.log("Type".cyan + " galleon status ".bold + "to show process status".cyan);
// Disconnect to PM2
pm2.disconnect(function () { process.exit(0) });
});
});
})
})
pm2.connect(function (err) {
if (err) {
console.error(err);
process.exit(2);
}
pm2.describe(name, function (err, apps) {
if (err) {
pm2.disconnect(); // Disconnects from PM2
throw err;
}
// 已存在的场景才需要删除
if (apps.length && apps[0].name === name) {
pm2.delete(name, function (err, apps) {
console.log('Stop local server success!');
pm2.disconnect(); // Disconnects from PM2
if (err) {
throw err;
}
});
} else {
_checkMemory() {
console.log('check memory called')
const _this = this;
pm2.list((err, list) => {
if (err || list.length === 0) {
console.error('something went wrong with your processes, please check you processes list via pm2 l')
process.exit()
}
list.forEach((proc) => {
// if process is being enabled to monitoring then check memory of process
if (_this._processes.indexOf(proc.name) !== -1) {
// if process memory more than alert.maxMemroySize then send notification
if (proc.monit.memory >= _this._config.memory.maxMemroySize) {
pm2.disconnect(function() {
console.log("disconnected....");
// kill the master controller and all slave miners
pm2.killDaemon(function() {
console.log("daemon killed....");
process.exit(0);
});
// return control to the caller
console.log("server shutdown...");
});
} else {
checkIfPM2ProcessExists(name, (exists) => {
if (exists) {
// TODO: Replace logger.
// logger.debug(`Deleting process ${name}`);
pm2.delete(name, () => {
pm2.disconnect(() => {
process.exit();
});
});
} else {
// TODO: Replace logger.
// logger.warn(`No process with name ${name} exists`);
pm2.disconnect(() => {
process.exit();
});
}
});
});
pm2.describe(name, function (err, apps) {
if (err) {
pm2.disconnect(); // Disconnects from PM2
throw err;
}
// 如果已存在,则先删除再启动
if (apps.length && apps[0].name === name) {
// 删除
pm2.delete(name, function (err, apps) {
if (err) {
pm2.disconnect(); // Disconnects from PM2
throw err;
}
// 启动
pm2.start(pm2ConfigFilePath, function (err, apps) {
console.log('Start local server success!');
pm2.disconnect(); // Disconnects from PM2
if (err) {
throw err;
}
});
});
} else {
pm2.delete(name, function (err, apps) {
if (err) {
pm2.disconnect(); // Disconnects from PM2
throw err;
}
// 启动
pm2.start(pm2ConfigFilePath, function (err, apps) {
console.log('Start local server success!');
pm2.disconnect(); // Disconnects from PM2
if (err) {
throw err;
}
});
});
} else {