08335 / hivui-platform-template
hivui平台项目模板
Newer
Older
hivui-platform-template / build / pm2.js
caibinghong on 8 Feb 2023 @中文描述:add
#!/usr/bin/env node
/*
// 本目录 是管理node 服务器,使用pm2 
// 通过package.json 里script 命令pm2 会调用 processes.json 配置 
// 然后  processes.json 配置  里 script选项会找到 这个文件执行
'use strict';
*/ 
var cp = require('child_process'); 
const packageCfg = require('../package.json');
const processesCfg = require('../processes.json');
let args = processesCfg.apps[0].args.split(' ');
let port = args[args.length-1];
//通过端口获取 进程id
const GetPortProcessId = function (port,projectName,user) {
    //`netstat -antp|grep ":::${port}" | awk '{print $7}'`
    // pm2 ls |grep vite-0000206-jwjx | awk '{print $12}'
    let res = cp.spawnSync(`pm2 ls |grep vite-${user}-${projectName} | awk '{print $12}'`, [], {
        encoding: 'utf8',
        // stdio: ['inherit','pipe'],
        stdio: 'pipe',
        // 仅在当前运行环境为 Windows 时,才使用 shell
        shell: process.platform === 'win32' ? true : '/bin/sh'
      })
      ,processId=0;
    if (res.stdout) {
        processId =  res.stdout.split('/')[0]
    }
    return processId;
}
function start(){
    require('vite/bin/vite.js');
}

//判断占用,找到进程
// let processId = GetPortProcessId(port, packageCfg.name, packageCfg.author);
// if (processId > 1) {
//     // cp.spawnSync(`kill -9 ${processId}`, [], {
//     //     encoding: 'utf8',
//     //     stdio: 'pipe',
//     //     shell: process.platform === 'win32' ? true : '/bin/sh'
//     // })
// }
start();