pubo-node 1.0.166 → 1.0.168
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/child-process/index.d.ts +1 -0
- package/lib/child-process/index.js +34 -6
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -1
- package/lib/ros/topic.js +0 -3
- package/lib/storage/json.js +3 -2
- package/package.json +3 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getAudioCards = exports.heartbeat = exports.getProcessTree = void 0;
|
|
3
|
+
exports.getDiskUsage = exports.getAudioCards = exports.heartbeat = exports.getProcessTree = void 0;
|
|
4
4
|
exports.getProcessName = getProcessName;
|
|
5
5
|
exports.getPidByPort = getPidByPort;
|
|
6
6
|
exports.getProcessCpuUseByPid = getProcessCpuUseByPid;
|
|
@@ -23,7 +23,7 @@ function getProcessName(pid) {
|
|
|
23
23
|
});
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
|
-
//
|
|
26
|
+
// 根据端口号获取进程PID
|
|
27
27
|
async function getPidByPort(port) {
|
|
28
28
|
if (!port) {
|
|
29
29
|
return '';
|
|
@@ -74,7 +74,7 @@ function getProcessCpuUseByPid(pid) {
|
|
|
74
74
|
});
|
|
75
75
|
});
|
|
76
76
|
}
|
|
77
|
-
// 获取进程 command
|
|
77
|
+
// 获取进程 command
|
|
78
78
|
function getProcessCommandByPid(pid) {
|
|
79
79
|
return new Promise((resolve) => {
|
|
80
80
|
(0, child_process_1.exec)(`ps -p ${pid} -o command=`, (err, stdout) => {
|
|
@@ -152,6 +152,7 @@ const flatProcessTree = (tree, tmp) => {
|
|
|
152
152
|
tree = null;
|
|
153
153
|
tmp = null;
|
|
154
154
|
};
|
|
155
|
+
// 杀死进程以及子进程
|
|
155
156
|
async function SIGKILL(pid, signal = 2) {
|
|
156
157
|
if (process.platform === 'win32') {
|
|
157
158
|
return new Promise((resolve) => {
|
|
@@ -164,16 +165,17 @@ async function SIGKILL(pid, signal = 2) {
|
|
|
164
165
|
flatProcessTree(tree, tmp);
|
|
165
166
|
tmp.reverse();
|
|
166
167
|
tree = null;
|
|
167
|
-
|
|
168
|
+
const res = { success: true, error: null };
|
|
168
169
|
for (const item of tmp) {
|
|
169
170
|
try {
|
|
170
171
|
await _SIGKILL(item, signal);
|
|
171
172
|
}
|
|
172
173
|
catch (err) {
|
|
173
|
-
|
|
174
|
+
res.error = err;
|
|
175
|
+
res.success = false;
|
|
174
176
|
}
|
|
175
177
|
}
|
|
176
|
-
return
|
|
178
|
+
return res;
|
|
177
179
|
}
|
|
178
180
|
// 子进程心跳包
|
|
179
181
|
const heartbeat = () => {
|
|
@@ -212,3 +214,29 @@ const getAudioCards = (filter = '') => {
|
|
|
212
214
|
});
|
|
213
215
|
};
|
|
214
216
|
exports.getAudioCards = getAudioCards;
|
|
217
|
+
const dic = ['fileSystem', 'size', 'used', 'avail', 'use%', 'mountedOn'];
|
|
218
|
+
const parser = (str) => {
|
|
219
|
+
return str
|
|
220
|
+
.split('\n')
|
|
221
|
+
.filter((item) => item)
|
|
222
|
+
.map((item) => item.split(' ').filter((s) => !!s))
|
|
223
|
+
.map((item) => {
|
|
224
|
+
const res = {};
|
|
225
|
+
dic.forEach((key, i) => (res[key] = item[i]));
|
|
226
|
+
return res;
|
|
227
|
+
})
|
|
228
|
+
.map((item) => ({ ...item, total: parseFloat(item.size), percentage: parseFloat(item['use%']) }));
|
|
229
|
+
};
|
|
230
|
+
const getDiskUsage = async () => {
|
|
231
|
+
return new Promise((resolve) => {
|
|
232
|
+
(0, child_process_1.exec)('df -h | grep G', (err, stdout) => {
|
|
233
|
+
if (err) {
|
|
234
|
+
resolve([]);
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
resolve(parser(stdout.toString()));
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
});
|
|
241
|
+
};
|
|
242
|
+
exports.getDiskUsage = getDiskUsage;
|
package/lib/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export { JsonStorage } from './storage/json';
|
|
|
2
2
|
export { FtpClient, FtpClientPool } from './ftp-client';
|
|
3
3
|
export type { FtpConnectOptions, FtpFile } from './ftp-client';
|
|
4
4
|
export { createRpcClient, GrpcList } from './grpc';
|
|
5
|
-
export { SIGKILL, isProcessDied, getProcessName, getProcessTree, getProcessByPpid, getProcessCpuUseByPid, getProcessCommandByPid, getPidByPort, heartbeat, } from './child-process';
|
|
5
|
+
export { SIGKILL, isProcessDied, getProcessName, getProcessTree, getProcessByPpid, getProcessCpuUseByPid, getProcessCommandByPid, getPidByPort, heartbeat, getDiskUsage, } from './child-process';
|
|
6
6
|
export { isPortAvailable } from './utils';
|
|
7
7
|
export { getWifiName, getNetworks } from './utils/network';
|
|
8
8
|
export { RosTopicManager, RosTopic } from './ros/topic';
|
package/lib/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PuboFileSystem = exports.RosTopic = exports.RosTopicManager = exports.getNetworks = exports.getWifiName = exports.isPortAvailable = exports.heartbeat = exports.getPidByPort = exports.getProcessCommandByPid = exports.getProcessCpuUseByPid = exports.getProcessByPpid = exports.getProcessTree = exports.getProcessName = exports.isProcessDied = exports.SIGKILL = exports.GrpcList = exports.createRpcClient = exports.FtpClientPool = exports.FtpClient = exports.JsonStorage = void 0;
|
|
3
|
+
exports.PuboFileSystem = exports.RosTopic = exports.RosTopicManager = exports.getNetworks = exports.getWifiName = exports.isPortAvailable = exports.getDiskUsage = exports.heartbeat = exports.getPidByPort = exports.getProcessCommandByPid = exports.getProcessCpuUseByPid = exports.getProcessByPpid = exports.getProcessTree = exports.getProcessName = exports.isProcessDied = exports.SIGKILL = exports.GrpcList = exports.createRpcClient = exports.FtpClientPool = exports.FtpClient = exports.JsonStorage = void 0;
|
|
4
4
|
var json_1 = require("./storage/json");
|
|
5
5
|
Object.defineProperty(exports, "JsonStorage", { enumerable: true, get: function () { return json_1.JsonStorage; } });
|
|
6
6
|
var ftp_client_1 = require("./ftp-client");
|
|
@@ -19,6 +19,7 @@ Object.defineProperty(exports, "getProcessCpuUseByPid", { enumerable: true, get:
|
|
|
19
19
|
Object.defineProperty(exports, "getProcessCommandByPid", { enumerable: true, get: function () { return child_process_1.getProcessCommandByPid; } });
|
|
20
20
|
Object.defineProperty(exports, "getPidByPort", { enumerable: true, get: function () { return child_process_1.getPidByPort; } });
|
|
21
21
|
Object.defineProperty(exports, "heartbeat", { enumerable: true, get: function () { return child_process_1.heartbeat; } });
|
|
22
|
+
Object.defineProperty(exports, "getDiskUsage", { enumerable: true, get: function () { return child_process_1.getDiskUsage; } });
|
|
22
23
|
var utils_1 = require("./utils");
|
|
23
24
|
Object.defineProperty(exports, "isPortAvailable", { enumerable: true, get: function () { return utils_1.isPortAvailable; } });
|
|
24
25
|
var network_1 = require("./utils/network");
|
package/lib/ros/topic.js
CHANGED
package/lib/storage/json.js
CHANGED
|
@@ -86,8 +86,9 @@ class Manager {
|
|
|
86
86
|
}
|
|
87
87
|
catch (err) {
|
|
88
88
|
const str = process.platform === 'win32' ? '\\' : '/';
|
|
89
|
-
|
|
90
|
-
|
|
89
|
+
const folder = this.path.split(str).slice(0, -1).join(str);
|
|
90
|
+
if (folder) {
|
|
91
|
+
(0, fs_1.mkdirSync)(folder, { recursive: true });
|
|
91
92
|
}
|
|
92
93
|
this.setState(this.defaultState ?? {});
|
|
93
94
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pubo-node",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.168",
|
|
4
4
|
"main": "./lib/index.js",
|
|
5
5
|
"types": "./lib/index.d.ts",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@types/node": "^17.0.25",
|
|
21
|
-
"pubo-utils": "^1.0.
|
|
21
|
+
"pubo-utils": "^1.0.167",
|
|
22
22
|
"yaml": "^2.5.1"
|
|
23
23
|
},
|
|
24
|
-
"gitHead": "
|
|
24
|
+
"gitHead": "a096fe8903a1e2e9a146469254a0d255ff9189e3",
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"del": "^5.1.0",
|
|
27
27
|
"eslint": "^8.42.0",
|