import fs from 'node:fs' import { exec } from 'node: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('pm2.json') cfg = JSON.parse(cfg) return cfg }