Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'pm2' in functional components in JavaScript. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.
}
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 {