This commit is contained in:
2025-02-18 17:25:08 +08:00
parent 0144f94edd
commit d9fe68d3fe
4 changed files with 114 additions and 20 deletions

View File

@@ -0,0 +1,35 @@
import { useConfig } from '@kevisual/use-config';
import childProcess from 'child_process';
const config = useConfig<{
appName: string;
}>();
export const selfRestart = async () => {
const appName = config.appName || 'codeflow';
// 检测 pm2 是否安装和是否有 appName 这个应用
try {
const res = childProcess.execSync(`pm2 list`);
const list = res.toString();
if (!list.includes(appName)) {
console.error(`pm2 list not found ${appName}`);
console.log('error', list);
return;
}
} catch (e) {
console.error('pm2 not found');
return;
}
// 执行 pm2 restart appName 命令
return new Promise((resolve, reject) => {
const res = childProcess.exec(`pm2 restart ${appName}`);
res.stdout.on('data', (data) => {
console.log('self-restart:', data);
resolve(data);
});
res.stderr.on('data', (data) => {
console.error('self-restart error:', data);
reject(data);
});
});
};