temp
This commit is contained in:
35
src/modules/self-restart.ts
Normal file
35
src/modules/self-restart.ts
Normal 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);
|
||||
});
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user