#!/usr/bin/env node /* // 本目录 是管理node 服务器,使用pm2 // 通过package.json 里script 命令pm2 会调用 processes.json 配置 // 然后 processes.json 配置 里 script选项会找到 这个文件执行 'use strict'; */ var cp = require('child_process'); //通过端口获取 进程id const GetPortProcessId = function (port) { //`netstat -antp|grep ":::${port}" | awk '{print $7}'` let res = cp.spawnSync(`netstat -antp|grep ":::${port}" | awk '{print $7}'`, [], { encoding: 'utf8', // stdio: ['inherit','pipe'], stdio: 'pipe', // 仅在当前运行环境为 Windows 时,才使用 shell shell: process.platform === 'win32' ? true : '/bin/sh' }) ,processId; if (res.stdout) { console.log('---------已找到冲突进程------------\n',res.stdout,'\n') processId = res.stdout.split('/')[0] } return processId; } function start(){ require('vite/bin/vite.js'); } const processesCfg = require('../processes.json'); let args = processesCfg.apps[0].args.split(' '); let port = args[args.length-1]; //判断占用,找到进程 let processId = GetPortProcessId(port); if (processId > 1) { // process.kill(processId); }else{ start(); }