添加 freem 命令

This commit is contained in:
Cheney 2024-09-02 17:37:31 +08:00
parent 2acd92086c
commit 4275120cba
7 changed files with 44 additions and 9 deletions

4
kit/package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "kit",
"version": "1.0.0",
"version": "0.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "kit",
"version": "1.0.0",
"version": "0.1",
"dependencies": {
"cross-port-killer": "^1.4.0",
"extract-zip": "^2.0.1",

View File

@ -3,7 +3,7 @@
"version": "0.1",
"bin": "src/index.js",
"scripts": {
"linux": "pkg --compress GZip . -t linux -o ./dist/linux/kit",
"linux": "pkg --compress GZip . -t node18-linux -o ./dist/linux/kit",
"windows": "pkg --compress GZip . -t win -o ./dist/windows/kit.exe",
"alpine" : "pkg --compress GZip . -t node14-alpine-arm64 -o ./dist/linux/kit"
},

View File

@ -12,6 +12,7 @@ const path = require("path");
const fs = require("fs");
const {sm3} = require("sm-crypto");
const zlib = require("zlib");
const mem = require("./mem")
parser.addCmdLine("man", "打开在线帮助;", async function (){
const uConfig = await $context.get("uConfig")
@ -113,6 +114,13 @@ parser.addCmdLine("install [module]", "安装/更新模块;", async function (cl
remote.install(cli.getParamValue("module"))
});
parser.addCmdLine("freem [level]", "释放内存", function (cli) {
let level = cli.getParamValue("level")
mem.free( level )
});
parser.addCmdLine("killport <port>", "释放端口", function (cli) {
let port = cli.getParamValue("port")
net.killport( parseInt(port, 10) );

22
kit/src/mem.js Normal file
View File

@ -0,0 +1,22 @@
const osutil = require("./util/osutil")
const shell = require("./shell")
function free(level) {
osutil.choise({
[osutil.Windows] : ( level ) => {
throw Error("暂不支持")
},
[osutil.Linux] : ( level ) => {
if ( [1,2,3].indexOf( parseInt(level,10)) === -1 ) {
level = 1
}
shell.execSync("sync")
shell.execSync(`echo ${level} > /proc/sys/vm/drop_caches`)
},
})
}
module.exports = {
free
}

View File

@ -1,7 +1,7 @@
const os = require('os');
const fs = require("fs");
const Windows = 0;
const Linux = 1;
const Windows = "Windows";
const Linux = "Linux";
module.exports = {
@ -11,11 +11,11 @@ module.exports = {
* 根据 os 不同载入不同的方法
*/
choise : function ( cbs ) {
if (os.type() == 'Windows_NT') {
if (os.type() === 'Windows_NT') {
// windows平台
return cbs && cbs[ Windows ]
}
else if (os.type() == 'Linux') {
else if (os.type() === 'Linux') {
// Linux平台
return cbs && cbs[ Linux ]
}

View File

@ -1,6 +1,4 @@
const net = require(__dirname + "/../src/net")
net.killport(6667);

View File

@ -0,0 +1,7 @@
[2024-09-02T17:10:24.971] [INFO] default - 执行命令 checkip
[2024-09-02T17:10:25.242] [INFO] default - ip : 61.164.40.82
[2024-09-02T17:10:25.243] [INFO] default - location : 中国 浙江 杭州 电信
[2024-09-02T17:10:25.244] [INFO] default -
61.164.40.82
[2024-09-02T17:32:08.694] [INFO] default - 执行命令 freem
[2024-09-02T17:32:22.663] [INFO] default - 执行命令 freem