pubo-node 1.0.164 → 1.0.166

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.
@@ -1,4 +1,5 @@
1
1
  export declare function getProcessName(pid: any): Promise<string>;
2
+ export declare function getPidByPort(port: any): Promise<unknown>;
2
3
  export declare function getProcessCpuUseByPid(pid: number): Promise<number>;
3
4
  export declare function getProcessCommandByPid(pid: number): Promise<string>;
4
5
  export declare function isProcessDied(pid: any): Promise<boolean>;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getAudioCards = exports.heartbeat = exports.getProcessTree = void 0;
4
4
  exports.getProcessName = getProcessName;
5
+ exports.getPidByPort = getPidByPort;
5
6
  exports.getProcessCpuUseByPid = getProcessCpuUseByPid;
6
7
  exports.getProcessCommandByPid = getProcessCommandByPid;
7
8
  exports.isProcessDied = isProcessDied;
@@ -17,7 +18,45 @@ function getProcessName(pid) {
17
18
  reject(err);
18
19
  }
19
20
  else {
20
- resolve(data);
21
+ resolve(data.toString().split(':')[1]?.trim());
22
+ }
23
+ });
24
+ });
25
+ }
26
+ // 根据端口号获取进程名称
27
+ async function getPidByPort(port) {
28
+ if (!port) {
29
+ return '';
30
+ }
31
+ if (process.platform === 'win32') {
32
+ return new Promise((resolve, reject) => {
33
+ (0, child_process_1.exec)(`netstat -ano | findstr "${port}"`, (error, stdout, stderr) => {
34
+ if (error) {
35
+ reject(error);
36
+ return;
37
+ }
38
+ const arr = stdout.split('\n');
39
+ if (!arr[0]) {
40
+ resolve('');
41
+ return;
42
+ }
43
+ const tmp = arr[0].split(' ');
44
+ const res = tmp.pop();
45
+ resolve(res);
46
+ });
47
+ });
48
+ }
49
+ return new Promise((resolve, reject) => {
50
+ (0, child_process_1.exec)(`lsof -i:${port} | awk '{print $2}'`, (err, stdout) => {
51
+ if (err) {
52
+ reject(err);
53
+ }
54
+ else {
55
+ let res = stdout.split('\n')[1];
56
+ if (res) {
57
+ res = res.trim();
58
+ }
59
+ resolve(res);
21
60
  }
22
61
  });
23
62
  });
@@ -126,13 +165,13 @@ async function SIGKILL(pid, signal = 2) {
126
165
  tmp.reverse();
127
166
  tree = null;
128
167
  let success = true;
129
- try {
130
- for (const item of tmp) {
168
+ for (const item of tmp) {
169
+ try {
131
170
  await _SIGKILL(item, signal);
132
171
  }
133
- }
134
- catch (err) {
135
- success = false;
172
+ catch (err) {
173
+ success = false;
174
+ }
136
175
  }
137
176
  return success;
138
177
  }
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, heartbeat, } from './child-process';
5
+ export { SIGKILL, isProcessDied, getProcessName, getProcessTree, getProcessByPpid, getProcessCpuUseByPid, getProcessCommandByPid, getPidByPort, heartbeat, } 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.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.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");
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "getProcessTree", { enumerable: true, get: functi
17
17
  Object.defineProperty(exports, "getProcessByPpid", { enumerable: true, get: function () { return child_process_1.getProcessByPpid; } });
18
18
  Object.defineProperty(exports, "getProcessCpuUseByPid", { enumerable: true, get: function () { return child_process_1.getProcessCpuUseByPid; } });
19
19
  Object.defineProperty(exports, "getProcessCommandByPid", { enumerable: true, get: function () { return child_process_1.getProcessCommandByPid; } });
20
+ Object.defineProperty(exports, "getPidByPort", { enumerable: true, get: function () { return child_process_1.getPidByPort; } });
20
21
  Object.defineProperty(exports, "heartbeat", { enumerable: true, get: function () { return child_process_1.heartbeat; } });
21
22
  var utils_1 = require("./utils");
22
23
  Object.defineProperty(exports, "isPortAvailable", { enumerable: true, get: function () { return utils_1.isPortAvailable; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pubo-node",
3
- "version": "1.0.164",
3
+ "version": "1.0.166",
4
4
  "main": "./lib/index.js",
5
5
  "types": "./lib/index.d.ts",
6
6
  "sideEffects": false,
@@ -21,7 +21,7 @@
21
21
  "pubo-utils": "^1.0.164",
22
22
  "yaml": "^2.5.1"
23
23
  },
24
- "gitHead": "c0bff5fb6d2bb3d5429a56bf20ae01797f9266a9",
24
+ "gitHead": "44bdcaeb2ec41a7a07a929a74082d8aa2cf53ad1",
25
25
  "devDependencies": {
26
26
  "del": "^5.1.0",
27
27
  "eslint": "^8.42.0",