Nodejs杀死本地应用(win)
windows端nodejs检查应用运行并杀死。
import {exec, execSync} from "child_process"
import {decode} from "iconv-lite"
import { buffer } from "stream/consumers";
//win系统 nodejs杀死本地指定应用进程 Firefox.exe
const encoding = 'cp936';
const binaryEncoding = 'binary';
function checkApplicationRun(exeName){
let cmd = process.platform === 'win32' ? `tasklist /fi "imagename eq ${exeName}" ` : `ps aux | grep ${exeName}`
// console.log(cmd)
exec(cmd, { encoding: binaryEncoding }, function (err, stdout, stderr) {
if (err) {
let resbonse = {'execstatus': false, 'msg':err}
return resbonse
}
let resbonse;
// stdout = Buffer.from(encode(stdout,'gb2312')).toString('base64');
// return stdout
stdout = decode(Buffer.from(stdout, binaryEncoding), encoding)
console.log(stdout)
stdout.split('/n').filter(function (line) {
console.log(line)
console.log(line.indexOf('No tasks'))
if (line.indexOf('No tasks')!== -1 || line.indexOf('没有运行的任务')!== -1){
console.log(exeName,'程序没有在运行');
resbonse = {'execstatus': true, 'msg':exeName+'程序没有在运行','run': false}
}
else{
// const p = line.trim().split(/\s+/) //去除前后空格并用空格分隔
// if (p[0] && p[1]) console.log('pname:' + p[0] + p[1],'PID:' + p[3] + p[4]) // 这一步可以做�?己逻辑得判�?
console.log(exeName,'程序在运行');
resbonse = {'execstatus': true, 'msg':exeName+'程序在运行','run': true}
}
return resbonse
})
})
}
function checkApplicationRunSync(exeName){
let cmd = process.platform === 'win32' ? `tasklist /fi "imagename eq ${exeName}" ` : `ps aux | grep ${exeName}`
// console.log(cmd)
let result = decode(Buffer.from(execSync(cmd)), 'gbk')
let response;
if (result.indexOf('No tasks')!== -1 || result.indexOf('没有运行的任务')!== -1){
console.log(exeName,'程序没有在运行');
response = {'execstatus': true, 'msg':exeName+'程序没有在运行','run': false}
}
else{
// const p = line.trim().split(/\s+/) //去除前后空格并用空格分隔
// if (p[0] && p[1]) console.log('pname:' + p[0] + p[1],'PID:' + p[3] + p[4]) // 这一步可以做�?己逻辑得判�?
console.log(exeName,'程序在运行');
response = {'execstatus': true, 'msg':exeName+'程序在运行','run': true}
}
return response
}
// checkApplicationRunSync('Twinkstar.exe')
function killApplication(exeName){ //未处理输出编码
const cmd = `taskkill -f /im ${exeName}`;
exec(cmd, function (err, stdout, stderr) {
if (err) {
console.log(err);
let resbonse = {'execstatus': false, 'msg':err, 'stop':false};
return resbonse
}
console.log(stdout)
let resbonse = {'execstatus': true, 'msg':exeName+'已停止运行。', 'stop':true};
return resbonse
})
}
function killApplicationSync(exeName){
const cmd = `taskkill -f /im ${exeName}`;
let result = decode(Buffer.from(execSync(cmd)), 'gbk');
// console.log(result);
return result
}
export {checkApplicationRun, checkApplicationRunSync, killApplication, killApplicationSync}
杀掉端口
npx kill-port 8080
Nodejs杀死本地应用(win)的更多相关文章
- web前端效率提升-nginx+nodejs搭建本地生态
1.起因 编写的项目是一个偏向于后台管理的web系统,使用了angular框架,在绑定数据的时候就依赖于后台的接口格式. 以前是后台写好接口后,我在绑定,在这之前一些逻辑是没法做的,有时候后台接口给的 ...
- nodejs:本地文件夹http服务器http-server
一.已经安装nodejs的电脑,有一个方便通过http访问本地文件夹.文件夹服务器 static files over HTTP,并不是我们平常说的node那个web服务器哦 二.好处 可以方便实现跨 ...
- nodejs实现本地上传图片并预览功能(express4.0+)
Express为:4.13.1 multyparty: 4.1.2 代码主要实现本地图片上传到nodejs服务器的文件下,通过取图片路径进行图片预览 写在前面:计划实现图片上传预览功能,但是本地图片 ...
- (转)nodejs搭建本地http服务器
本文转载自:http://www.cnblogs.com/shawn-xie/archive/2013/06/06/3121173.html 由于不做php相关的东西,懒得装apache,干脆利用no ...
- nodejs 构建本地web测试服务器 以及 解决访问静态资源的问题!
直接打开html文件,是以file:///方式打开的,这种方式很多时候会遇到跨域的问题,因此我们一般会搭建一个简易的本地服务器,来运行测试页面. 一.构建静态服务器 1.使用express模块 建立个 ...
- nodejs 搭建本地静态服务器
1. http-server 参看 https://www.npmjs.com/package/http-server 使用http-server搭建本地静态服务器 全局安装http-server n ...
- 搭建apache本地服务器·Win
1.下载apache地址:https://www.apachelounge.com/download/ 注意:下载压缩包如下 httpd-2.4.37-win64-VC15.zip 其中根据自己电脑的 ...
- 使用nodeJs在本地搭建最简单的服务
在搭建web服务器之前,需要先安装node.js 安装后node.js,接下来就需要安装http的镜像文件 一:本机安装软件 下载最新的NodeJs,进行安装.一直点击下一步就可以了.然后就可以查看安 ...
- nodeJS搭建本地服务器
准备工作: 安装Node JS: 1:安装全局express:在express4.x版本中,安装时语句变为了这样: npm install -g express-generator 2:创建项目: 选 ...
- nodejs读取本地txt文件并输出到浏览器
var fs = require('fs'); var chrome=""; //同步执行 function tongbu(){ var data =fs.readFileSync ...
随机推荐
- 重新捋一捋React源码之更新渲染流程
前言 前些天在看Dan Abramov个人博客(推荐阅读,站在React开发者的角度去解读一些API的设计初衷和最佳实践)里的一篇文章,其重点部分的思想就是即使不使用Memo(),也可以通过组合的方式 ...
- .Net引用根目录子文件夹下的dll文件
在.Net开发的时候,有时候会引用一套库,这些库是由多个dll文件.正常情况下,这些dll文件需要拷贝到运行根目录下.如果这些dll文件比较多,加上其他直接引用的dll,这样会导致根目录下非常乱.我们 ...
- P3845 [TJOI2007]球赛
简要题意 \(T\) 组数据,每一组数据给出 \(n\) 个数对 \((a,b)\).你需要将其分为几组,使得组单调不降.求最小组数. 思路 模拟赛考的题. 先来介绍 Dilworth 定理: 对于任 ...
- C#11新特性整理
假期中有时间,整理了C#11的各个新特性,简单分享给大家. 一.使用VSCode新建一个.NET7.0的Console工程 <Project Sdk="Microsoft.NET.Sd ...
- 使用ng-zorro图标库出现the icon redo-o does not exist or is not registered.
出现这种情况一般是因为没导入你要的图标 可以在项目目录找到这个文件 src\style-icons-auto.ts 然后打开,导入导出里加上你要导入的图标.... 就可以了 如果你不知道要怎么加 ...
- U3D编辑器开发&粒子特效/动画预览器示例
概述 U3D提供了一套拓展编辑器的接口,可以用于直接在编辑器非播放模式运行程序.常用于运行一些工具程序,例如资源管理.在做技能编辑器等工具程序时,也可以使用运行模式接口会比较简单(这样也方便开放游戏创 ...
- 自定义接口-lambda使用前提
自定义接口 lambda使用前提 可推导即可省略 Lambda强调的是"做什么"而不是"怎么做",所以凡是可以根据上下文推导得知的信息,都可以省略.例如上例还可 ...
- Vue3源码阅读梳理
简单代码例子 const { createApp, defineComponent, computed, watch, ref, reactive, effect } = Vue const app ...
- "万字" Java I/O 详解
Java I/O流讲解 每博一文案 谁让你读了这么多书,又知道了双水村以外还有一个大世界,如果从小你就在这个天地里,日出而作,日落而息. 那你现在就会和众乡亲抱同一理想:经过几年的辛劳,像大哥一样娶个 ...
- P2_小程序简介
小程序与普通网页开发的区别 运行环境不同 网页运行在浏览器环境中 小程序运行在微信环境中 API 不同 由于运行环境的不同,所以小程序中,无法调用 DOM 和 BOM 的 API. 但是,小程序中可以 ...