45 lines
1.2 KiB
JavaScript
45 lines
1.2 KiB
JavaScript
const pm2 = require('pm2');
|
|
const { execSync } = require("child_process");
|
|
|
|
function startPm2Process(process_name, file, path, port) {
|
|
|
|
pm2.connect(function (err) {
|
|
if (err) {
|
|
console.error(err);
|
|
// process.exit(2);
|
|
}
|
|
|
|
pm2.start({
|
|
name: process_name,
|
|
script: file,
|
|
cwd: path,
|
|
env: {
|
|
PORT: port
|
|
}
|
|
// additional options here if needed
|
|
}, function (err, apps) {
|
|
if (err) {
|
|
console.error(err);
|
|
// process.exit(2);
|
|
}
|
|
else {
|
|
execSync(`pm2 save --force`, { cwd: path }, (error, stdout, stderr) => {
|
|
if (error) {
|
|
console.log(`error: ${error.message}`);
|
|
return;
|
|
}
|
|
if (stderr) {
|
|
console.log(`stderr: ${stderr}`);
|
|
return;
|
|
}
|
|
console.log(`stdout: ${stdout}`);
|
|
});
|
|
}
|
|
|
|
pm2.disconnect();
|
|
});
|
|
});
|
|
|
|
}
|
|
|
|
module.exports = startPm2Process |