50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
|
const pm2 = require('pm2')
|
||
|
const { execSync } = require("child_process")
|
||
|
|
||
|
function startPm2Process(process_name, file, path, env) {
|
||
|
|
||
|
pm2.connect(function (err) {
|
||
|
if (err) {
|
||
|
console.error(err)
|
||
|
// process.exit(2);
|
||
|
}
|
||
|
|
||
|
console.log('ENV PM2: ', env)
|
||
|
|
||
|
pm2.start({
|
||
|
name: process_name,
|
||
|
script: file,
|
||
|
cwd: path,
|
||
|
env
|
||
|
// env: {
|
||
|
// NODE_ENV: 'production',
|
||
|
|
||
|
// 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
|