33 lines
854 B
JavaScript
33 lines
854 B
JavaScript
|
import fs from 'fs'
|
||
|
import { createRequire } from 'module'
|
||
|
const require = createRequire(import.meta.url)
|
||
|
const { exec } = require('child_process')
|
||
|
|
||
|
export async function checkRun () {
|
||
|
if (process.argv[1].includes('pm2')) return
|
||
|
if (process.argv[1].includes('test')) return
|
||
|
|
||
|
let cfg = pm2Cfg()
|
||
|
let status = await execSync(`pm2 show ${cfg.apps[0].name}`)
|
||
|
|
||
|
if (status.stdout.includes('online')) {
|
||
|
logger.mark('检测到后台正在运行')
|
||
|
logger.mark('已停止后台进程,防止重复运行')
|
||
|
execSync(`pm2 stop ${cfg.apps[0].name}`)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
async function execSync (cmd) {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
exec(cmd, (error, stdout, stderr) => {
|
||
|
resolve({ error, stdout, stderr })
|
||
|
})
|
||
|
})
|
||
|
}
|
||
|
|
||
|
function pm2Cfg () {
|
||
|
let cfg = fs.readFileSync('./config/pm2/pm2.json')
|
||
|
cfg = JSON.parse(cfg)
|
||
|
return cfg
|
||
|
}
|