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