@dsh-enhanced/dsh-rsi-cli 0.1.49 → 0.1.53
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/README.md +14 -8
- package/lib/diagnose.js +7 -7
- package/lib/diagnose.js.map +1 -1
- package/lib/home-lifecycle-lock.d.ts +4 -0
- package/lib/home-lifecycle-lock.d.ts.map +1 -0
- package/lib/home-lifecycle-lock.js +69 -0
- package/lib/home-lifecycle-lock.js.map +1 -0
- package/lib/index.d.ts +5 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +155 -8
- package/lib/index.js.map +1 -1
- package/lib/install.d.ts.map +1 -1
- package/lib/install.js +3 -0
- package/lib/install.js.map +1 -1
- package/lib/launchd-lock.d.ts +3 -0
- package/lib/launchd-lock.d.ts.map +1 -0
- package/lib/launchd-lock.js +46 -0
- package/lib/launchd-lock.js.map +1 -0
- package/lib/launchd-service.d.ts +24 -0
- package/lib/launchd-service.d.ts.map +1 -0
- package/lib/launchd-service.js +146 -0
- package/lib/launchd-service.js.map +1 -0
- package/lib/process-guard.d.ts +4 -5
- package/lib/process-guard.d.ts.map +1 -1
- package/lib/process-guard.js +17 -8
- package/lib/process-guard.js.map +1 -1
- package/lib/purge.d.ts.map +1 -1
- package/lib/purge.js +30 -5
- package/lib/purge.js.map +1 -1
- package/lib/run.d.ts +2 -1
- package/lib/run.d.ts.map +1 -1
- package/lib/run.js +8 -10
- package/lib/run.js.map +1 -1
- package/lib/services.d.ts +10 -3
- package/lib/services.d.ts.map +1 -1
- package/lib/services.js +126 -42
- package/lib/services.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/weburl.d.ts +1 -1
- package/lib/weburl.d.ts.map +1 -1
- package/lib/weburl.js +17 -2
- package/lib/weburl.js.map +1 -1
- package/package.json +1 -1
package/lib/run.js
CHANGED
|
@@ -15,7 +15,8 @@ function escapeRegex(value) {
|
|
|
15
15
|
* 进程静止检查:查找仍在运行的受管 profile host。
|
|
16
16
|
*
|
|
17
17
|
* 先用 `pgrep -f <pattern>`(只取 PID),pattern 为 `--profile <profile>`;
|
|
18
|
-
* 命令行再用 `ps -p <pid> -o command=` 读取(procps/BSD
|
|
18
|
+
* 命令行再用 `ps -p <pid> -o command=` 读取(procps/BSD 均支持);
|
|
19
|
+
* ps 无法读取匹配 PID 时按探测失败处理,不将其当作静止。
|
|
19
20
|
* 因为部分环境 pgrep -l 会打印线程 comm(如 MainThread)而非完整命令行。
|
|
20
21
|
* dsh-rsi purge 自身命令行也可能带该参数,因此把命令行中含 dsh-rsi / dsh-rsi-cli
|
|
21
22
|
* (旧包名 @dsh-enhanced/rsi-cli 的全局路径同样包含 rsi-cli)的匹配剔除。
|
|
@@ -28,14 +29,18 @@ export function findRunningProfiles(profiles, runner = defaultRunner) {
|
|
|
28
29
|
// Linux procps 与 macOS BSD pgrep 都不会把它当成选项(无需依赖 -- 分隔符)。
|
|
29
30
|
const pattern = `[-]-profile ${escapeRegex(profile)}`;
|
|
30
31
|
const result = runner('pgrep', ['-f', pattern]);
|
|
31
|
-
if (result.status !== 0 && result.status
|
|
32
|
+
if (result.status !== 0 && !(result.status === 1 && result.stdout.trim() === '' && result.stderr.trim() === '')) {
|
|
32
33
|
return { active: [], error: result.stderr.trim() || `pgrep 退出码 ${result.status}` };
|
|
33
34
|
}
|
|
34
35
|
for (const line of result.stdout.split('\n')) {
|
|
35
36
|
const pid = Number(line.trim());
|
|
36
37
|
if (!Number.isInteger(pid) || pid <= 0)
|
|
37
38
|
continue;
|
|
38
|
-
const
|
|
39
|
+
const shown = runner('ps', ['-p', String(pid), '-o', 'command=']);
|
|
40
|
+
if (shown.status !== 0 || shown.stdout.trim() === '') {
|
|
41
|
+
return { active: [], error: `无法读取 PID ${pid} 命令行:${shown.stderr.trim() || `ps 退出码 ${shown.status}`}` };
|
|
42
|
+
}
|
|
43
|
+
const commandLine = shown.stdout.trim();
|
|
39
44
|
if (commandLine.includes('dsh-rsi') || commandLine.includes('rsi-cli') || commandLine.includes('purge.sh'))
|
|
40
45
|
continue;
|
|
41
46
|
active.push({ pid, commandLine });
|
|
@@ -43,11 +48,4 @@ export function findRunningProfiles(profiles, runner = defaultRunner) {
|
|
|
43
48
|
}
|
|
44
49
|
return { active };
|
|
45
50
|
}
|
|
46
|
-
/** 跨平台读取单个 PID 的完整命令行;读取失败时回退占位文本。 */
|
|
47
|
-
function readCommandLine(pid, runner) {
|
|
48
|
-
const shown = runner('ps', ['-p', String(pid), '-o', 'command=']);
|
|
49
|
-
if (shown.status !== 0)
|
|
50
|
-
return `PID ${pid}(命令行不可读)`;
|
|
51
|
-
return shown.stdout.trim() || `PID ${pid}`;
|
|
52
|
-
}
|
|
53
51
|
//# sourceMappingURL=run.js.map
|
package/lib/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAyB,MAAM,oBAAoB,CAAA;AAUrE,6CAA6C;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;IAC5D,MAAM,MAAM,GAA6B,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAA;IACvG,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;KACxC,CAAA;AACH,CAAC,CAAA;AAOD,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,UAAU,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAA;AACzD,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAyB,MAAM,oBAAoB,CAAA;AAUrE,6CAA6C;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;IAC5D,MAAM,MAAM,GAA6B,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAA;IACvG,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;KACxC,CAAA;AACH,CAAC,CAAA;AAOD,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,UAAU,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAA;AACzD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAA2B,EAC3B,SAAwB,aAAa;IAErC,MAAM,MAAM,GAAqB,EAAE,CAAA;IACnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,kDAAkD;QAClD,yDAAyD;QACzD,MAAM,OAAO,GAAG,eAAe,WAAW,CAAC,OAAO,CAAC,EAAE,CAAA;QACrD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;QAC/C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAChH,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,aAAa,MAAM,CAAC,MAAM,EAAE,EAAE,CAAA;QACpF,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YAC/B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;gBAAE,SAAQ;YAChD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;YACjE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACrD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,GAAG,QAAQ,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,UAAU,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,CAAA;YACxG,CAAC;YACD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;YACvC,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,SAAQ;YACpH,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,CAAA;AACnB,CAAC"}
|
package/lib/services.d.ts
CHANGED
|
@@ -7,13 +7,20 @@ export interface ServiceStopOutcome {
|
|
|
7
7
|
skipped: string[];
|
|
8
8
|
errors: string[];
|
|
9
9
|
}
|
|
10
|
+
/** Optional bounded polling control for tests; production waits up to five seconds. */
|
|
11
|
+
export interface ServiceWaitOptions {
|
|
12
|
+
attempts?: number;
|
|
13
|
+
intervalMs?: number;
|
|
14
|
+
}
|
|
10
15
|
/**
|
|
11
16
|
* 停用并注销一个 profile 的受管常驻服务。
|
|
12
17
|
* macOS:launchctl bootout + 删 ~/Library/LaunchAgents/<label>.plist。
|
|
13
18
|
* Linux:systemctl --user disable --now + reset-failed + 删受管 unit(及同名 .d)+ daemon-reload。
|
|
14
19
|
* 服务未注册/已停止不报错;任何非预期文件归属问题 fail-closed 只报告不删除。
|
|
15
20
|
*/
|
|
16
|
-
export declare function stopManagedService(platform: NodeJS.Platform, home: string, profile: string, runner: CommandRunner, dryRun: boolean): Promise<ServiceStopOutcome>;
|
|
21
|
+
export declare function stopManagedService(platform: NodeJS.Platform, home: string, profile: string, runner: CommandRunner, dryRun: boolean, dshHome?: string, waitOptions?: ServiceWaitOptions): Promise<ServiceStopOutcome>;
|
|
22
|
+
/** Hold every affected GUI label lock until the caller's purge transaction completes. */
|
|
23
|
+
export declare function withMacPurgeServiceLocks<T>(home: string, dshHome: string, profiles: readonly string[], runner: CommandRunner, operation: (stop: (profile: string) => Promise<ServiceStopOutcome>) => Promise<T>): Promise<T>;
|
|
17
24
|
/** 一次运维动作的结果。exit 供 CLI 决定退出码。 */
|
|
18
25
|
export interface ServiceActionOutcome {
|
|
19
26
|
profile: string;
|
|
@@ -46,7 +53,7 @@ export interface ManagedServicePresence {
|
|
|
46
53
|
* 检查一个 profile 的受管服务定义是否就绪。
|
|
47
54
|
* 只读文件系统,不执行 systemctl / launchctl。
|
|
48
55
|
*/
|
|
49
|
-
export declare function inspectManagedService(platform: NodeJS.Platform, home: string, profile: string): Promise<ManagedServicePresence>;
|
|
56
|
+
export declare function inspectManagedService(platform: NodeJS.Platform, home: string, profile: string, dshHome?: string, runner?: CommandRunner): Promise<ManagedServicePresence>;
|
|
50
57
|
/**
|
|
51
58
|
* 对一个已注册的受管服务执行 start / stop / restart。
|
|
52
59
|
*
|
|
@@ -58,7 +65,7 @@ export declare function inspectManagedService(platform: NodeJS.Platform, home: s
|
|
|
58
65
|
* 停止后 plist 仍在,所以随后可以再 start,这与 purge 的 bootout+删文件不同。
|
|
59
66
|
* Linux 直接用 `systemctl --user start|stop|restart`。
|
|
60
67
|
*/
|
|
61
|
-
export declare function controlManagedService(platform: NodeJS.Platform, home: string, profile: string, action: ServiceAction, runner?: CommandRunner, dryRun?: boolean): Promise<ServiceActionOutcome>;
|
|
68
|
+
export declare function controlManagedService(platform: NodeJS.Platform, home: string, profile: string, action: ServiceAction, runner?: CommandRunner, dryRun?: boolean, dshHome?: string, waitOptions?: ServiceWaitOptions): Promise<ServiceActionOutcome>;
|
|
62
69
|
/**
|
|
63
70
|
* 解析运维命令的目标 profile 集合。
|
|
64
71
|
* 显式 --profile 优先;否则取 DSH home 下全部 profile。
|
package/lib/services.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"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"}
|
package/lib/services.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { readFile, rm, stat } from 'node:fs/promises';
|
|
2
2
|
import { open } from 'node:fs/promises';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
|
+
import { setTimeout as delay } from 'node:timers/promises';
|
|
5
|
+
import { inspectLaunchdDefinition, inspectLoadedLaunchd, oldPidExited } from "./launchd-service.js";
|
|
6
|
+
import { withLaunchdProfileLock } from "./launchd-lock.js";
|
|
4
7
|
import { defaultRunner } from "./run.js";
|
|
5
8
|
import { launchAgentTargets, listProfiles, profileLogPaths, systemdUnitName, systemdUserDirectory, SYSTEMD_UNIT_PATTERN, } from "./paths.js";
|
|
6
9
|
/** 受管 unit / plist 的内容指纹(lifecycle-profile.mjs rendererUnitPattern 与 launchd.ts createLaunchAgent)。 */
|
|
@@ -18,27 +21,28 @@ async function isManagedUnitFile(path, profile) {
|
|
|
18
21
|
&& source.includes(`--profile ${profile} `)
|
|
19
22
|
&& source.includes('--no-open');
|
|
20
23
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
* unit 的判定同样严格,避免把同名的用户自建 LaunchAgent 当成受管服务操作。
|
|
28
|
-
*/
|
|
29
|
-
async function isManagedPlistFile(path, profile) {
|
|
30
|
-
let source;
|
|
31
|
-
try {
|
|
32
|
-
source = await readFile(path, 'utf8');
|
|
24
|
+
async function waitForLaunchdTransition(definition, dshHome, previousPid, runner, target, options = {}) {
|
|
25
|
+
const attempts = options.attempts ?? 50;
|
|
26
|
+
const intervalMs = options.intervalMs ?? 100;
|
|
27
|
+
if (!Number.isSafeInteger(attempts) || attempts < 1 || attempts > 100
|
|
28
|
+
|| !Number.isSafeInteger(intervalMs) || intervalMs < 0 || intervalMs > 1_000) {
|
|
29
|
+
return { ok: false, error: '无效的 launchd 状态检查参数' };
|
|
33
30
|
}
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
for (let attempt = 0; attempt < attempts; attempt++) {
|
|
32
|
+
const state = inspectLoadedLaunchd(definition, dshHome, runner);
|
|
33
|
+
if (state.error)
|
|
34
|
+
return { ok: false, error: state.error };
|
|
35
|
+
const oldExited = previousPid < 2 || oldPidExited(previousPid, runner);
|
|
36
|
+
if (target === 'stopped' && !state.registered && oldExited)
|
|
37
|
+
return { ok: true };
|
|
38
|
+
if (target === 'running' && state.running)
|
|
39
|
+
return { ok: true };
|
|
40
|
+
if (target === 'restarted' && state.running && state.pid !== previousPid && oldExited)
|
|
41
|
+
return { ok: true };
|
|
42
|
+
if (attempt + 1 < attempts)
|
|
43
|
+
await delay(intervalMs);
|
|
36
44
|
}
|
|
37
|
-
|
|
38
|
-
return source.includes(`<string>${label}</string>`)
|
|
39
|
-
&& source.includes('<string>--profile</string>')
|
|
40
|
-
&& source.includes(`<string>${profile}</string>`)
|
|
41
|
-
&& source.includes('<string>--no-open</string>');
|
|
45
|
+
return { ok: false };
|
|
42
46
|
}
|
|
43
47
|
/**
|
|
44
48
|
* 停用并注销一个 profile 的受管常驻服务。
|
|
@@ -46,17 +50,57 @@ async function isManagedPlistFile(path, profile) {
|
|
|
46
50
|
* Linux:systemctl --user disable --now + reset-failed + 删受管 unit(及同名 .d)+ daemon-reload。
|
|
47
51
|
* 服务未注册/已停止不报错;任何非预期文件归属问题 fail-closed 只报告不删除。
|
|
48
52
|
*/
|
|
49
|
-
export async function stopManagedService(platform, home, profile, runner, dryRun) {
|
|
53
|
+
export async function stopManagedService(platform, home, profile, runner, dryRun, dshHome = join(home, '.dsh'), waitOptions = {}) {
|
|
54
|
+
if (platform === 'darwin' && process.platform === 'darwin' && !dryRun) {
|
|
55
|
+
return withLaunchdProfileLock(profile, () => stopManagedServiceUnlocked(platform, home, profile, runner, dryRun, dshHome, waitOptions));
|
|
56
|
+
}
|
|
57
|
+
return stopManagedServiceUnlocked(platform, home, profile, runner, dryRun, dshHome, waitOptions);
|
|
58
|
+
}
|
|
59
|
+
async function stopManagedServiceUnlocked(platform, home, profile, runner, dryRun, dshHome, waitOptions) {
|
|
50
60
|
const outcome = { profile, actions: [], skipped: [], errors: [] };
|
|
51
61
|
if (platform === 'darwin') {
|
|
52
62
|
const { label, plistPath } = launchAgentTargets(home, profile);
|
|
53
63
|
const target = `gui/${process.getuid?.() ?? process.env.UID}/${label}`;
|
|
54
|
-
|
|
55
|
-
|
|
64
|
+
const checked = await inspectLaunchdDefinition(home, dshHome, profile, runner);
|
|
65
|
+
if (!checked.exists) {
|
|
66
|
+
const query = runner('launchctl', ['print', target]);
|
|
67
|
+
if (query.status === 113 && /Could not find service/iu.test(query.stderr))
|
|
68
|
+
return outcome;
|
|
69
|
+
outcome.errors.push(`${profile}:plist 不存在,但同名已加载服务存在或查询失败,拒绝删除数据`);
|
|
70
|
+
return outcome;
|
|
71
|
+
}
|
|
72
|
+
if (!checked.definition) {
|
|
73
|
+
outcome.skipped.push(`${plistPath}(${checked.error ?? '归属不明'},保留)`);
|
|
74
|
+
outcome.errors.push(`${profile}:${checked.error ?? 'plist 归属不明'},拒绝注销`);
|
|
75
|
+
return outcome;
|
|
76
|
+
}
|
|
77
|
+
const loaded = inspectLoadedLaunchd(checked.definition, dshHome, runner);
|
|
78
|
+
if (loaded.error) {
|
|
79
|
+
outcome.errors.push(`${profile}:${loaded.error}`);
|
|
80
|
+
return outcome;
|
|
81
|
+
}
|
|
82
|
+
if (loaded.registered)
|
|
83
|
+
outcome.actions.push(`launchctl bootout ${target}`);
|
|
84
|
+
outcome.actions.push(`删除受管 plist ${plistPath}`);
|
|
56
85
|
if (dryRun)
|
|
57
86
|
return outcome;
|
|
58
|
-
|
|
59
|
-
|
|
87
|
+
if (loaded.registered) {
|
|
88
|
+
const bootout = runner('launchctl', ['bootout', target]);
|
|
89
|
+
if (bootout.status !== 0) {
|
|
90
|
+
outcome.errors.push(`${profile}:bootout 失败:${bootout.stderr.trim() || bootout.status}`);
|
|
91
|
+
return outcome;
|
|
92
|
+
}
|
|
93
|
+
const after = await waitForLaunchdTransition(checked.definition, dshHome, loaded.pid, runner, 'stopped', waitOptions);
|
|
94
|
+
if (!after.ok) {
|
|
95
|
+
outcome.errors.push(`${profile}:${after.error ?? '服务或旧 PID 仍在'},保留 plist 并中止删除`);
|
|
96
|
+
return outcome;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const latest = await inspectLaunchdDefinition(home, dshHome, profile, runner);
|
|
100
|
+
if (!latest.definition || JSON.stringify(latest.definition) !== JSON.stringify(checked.definition)) {
|
|
101
|
+
outcome.errors.push(`${profile}:plist 在停止期间改变,保留并中止删除`);
|
|
102
|
+
return outcome;
|
|
103
|
+
}
|
|
60
104
|
await rm(plistPath, { force: true });
|
|
61
105
|
return outcome;
|
|
62
106
|
}
|
|
@@ -102,6 +146,20 @@ export async function stopManagedService(platform, home, profile, runner, dryRun
|
|
|
102
146
|
outcome.actions.push('systemctl --user daemon-reload');
|
|
103
147
|
return outcome;
|
|
104
148
|
}
|
|
149
|
+
/** Hold every affected GUI label lock until the caller's purge transaction completes. */
|
|
150
|
+
export async function withMacPurgeServiceLocks(home, dshHome, profiles, runner, operation) {
|
|
151
|
+
const ordered = [...new Set(profiles)].sort();
|
|
152
|
+
const allowed = new Set(ordered);
|
|
153
|
+
const stop = (profile) => {
|
|
154
|
+
if (!allowed.has(profile))
|
|
155
|
+
throw new Error(`未锁定的 launchd profile:${profile}`);
|
|
156
|
+
return stopManagedServiceUnlocked('darwin', home, profile, runner, false, dshHome, {});
|
|
157
|
+
};
|
|
158
|
+
const acquire = (index) => index === ordered.length
|
|
159
|
+
? operation(stop)
|
|
160
|
+
: withLaunchdProfileLock(ordered[index], () => acquire(index + 1));
|
|
161
|
+
return acquire(0);
|
|
162
|
+
}
|
|
105
163
|
const ACTION_LABEL = {
|
|
106
164
|
start: '启动',
|
|
107
165
|
stop: '停止',
|
|
@@ -143,18 +201,11 @@ export async function managedServiceProcessIds(platform, home, profiles, runner
|
|
|
143
201
|
* 检查一个 profile 的受管服务定义是否就绪。
|
|
144
202
|
* 只读文件系统,不执行 systemctl / launchctl。
|
|
145
203
|
*/
|
|
146
|
-
export async function inspectManagedService(platform, home, profile) {
|
|
204
|
+
export async function inspectManagedService(platform, home, profile, dshHome = join(home, '.dsh'), runner = defaultRunner) {
|
|
147
205
|
if (platform === 'darwin') {
|
|
148
206
|
const { plistPath } = launchAgentTargets(home, profile);
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
try {
|
|
152
|
-
await stat(plistPath);
|
|
153
|
-
}
|
|
154
|
-
catch {
|
|
155
|
-
exists = false;
|
|
156
|
-
}
|
|
157
|
-
return { managed, definitionPath: plistPath, foreign: exists && !managed };
|
|
207
|
+
const checked = await inspectLaunchdDefinition(home, dshHome, profile, runner);
|
|
208
|
+
return { managed: !!checked.definition, definitionPath: plistPath, foreign: checked.exists && !checked.definition };
|
|
158
209
|
}
|
|
159
210
|
const unit = systemdUnitName(profile);
|
|
160
211
|
const definitionPath = join(systemdUserDirectory(home), unit);
|
|
@@ -179,14 +230,20 @@ export async function inspectManagedService(platform, home, profile) {
|
|
|
179
230
|
* 停止后 plist 仍在,所以随后可以再 start,这与 purge 的 bootout+删文件不同。
|
|
180
231
|
* Linux 直接用 `systemctl --user start|stop|restart`。
|
|
181
232
|
*/
|
|
182
|
-
export async function controlManagedService(platform, home, profile, action, runner = defaultRunner, dryRun = false) {
|
|
233
|
+
export async function controlManagedService(platform, home, profile, action, runner = defaultRunner, dryRun = false, dshHome = join(home, '.dsh'), waitOptions = {}) {
|
|
234
|
+
if (platform === 'darwin' && process.platform === 'darwin' && !dryRun) {
|
|
235
|
+
return withLaunchdProfileLock(profile, () => controlManagedServiceUnlocked(platform, home, profile, action, runner, dryRun, dshHome, waitOptions));
|
|
236
|
+
}
|
|
237
|
+
return controlManagedServiceUnlocked(platform, home, profile, action, runner, dryRun, dshHome, waitOptions);
|
|
238
|
+
}
|
|
239
|
+
async function controlManagedServiceUnlocked(platform, home, profile, action, runner, dryRun, dshHome, waitOptions) {
|
|
183
240
|
const outcome = { profile, actions: [], messages: [], errors: [] };
|
|
184
241
|
const label = ACTION_LABEL[action];
|
|
185
242
|
if (platform !== 'darwin' && platform !== 'linux') {
|
|
186
243
|
outcome.errors.push(`${profile}:当前平台 ${platform} 没有受管常驻服务(仅 macOS launchd 与 Linux systemd --user)`);
|
|
187
244
|
return outcome;
|
|
188
245
|
}
|
|
189
|
-
const presence = await inspectManagedService(platform, home, profile);
|
|
246
|
+
const presence = await inspectManagedService(platform, home, profile, dshHome, runner);
|
|
190
247
|
if (!presence.managed) {
|
|
191
248
|
outcome.errors.push(presence.foreign
|
|
192
249
|
? `${profile}:${presence.definitionPath} 存在但不是 dsh-enhanced 受管服务,已拒绝操作(请人工确认该文件归属)`
|
|
@@ -199,32 +256,59 @@ export async function controlManagedService(platform, home, profile, action, run
|
|
|
199
256
|
}
|
|
200
257
|
if (platform === 'darwin') {
|
|
201
258
|
const { label: agentLabel, plistPath } = launchAgentTargets(home, profile);
|
|
259
|
+
const checked = await inspectLaunchdDefinition(home, dshHome, profile, runner);
|
|
260
|
+
if (!checked.definition) {
|
|
261
|
+
outcome.errors.push(`${profile}:plist 归属无法确认`);
|
|
262
|
+
return outcome;
|
|
263
|
+
}
|
|
264
|
+
const loaded = inspectLoadedLaunchd(checked.definition, dshHome, runner);
|
|
265
|
+
if (loaded.error) {
|
|
266
|
+
outcome.errors.push(`${profile}:${loaded.error}`);
|
|
267
|
+
return outcome;
|
|
268
|
+
}
|
|
202
269
|
const domain = `gui/${process.getuid?.() ?? process.env.UID}`;
|
|
203
270
|
const target = `${domain}/${agentLabel}`;
|
|
204
271
|
if (action === 'stop') {
|
|
205
|
-
|
|
206
|
-
|
|
272
|
+
if (loaded.registered)
|
|
273
|
+
outcome.actions.push(`launchctl bootout ${target}`);
|
|
274
|
+
if (!dryRun && loaded.registered) {
|
|
207
275
|
const result = runner('launchctl', ['bootout', target]);
|
|
208
|
-
|
|
209
|
-
if (result.status !== 0 && !/No such process|not find/iu.test(`${result.stderr}${result.stdout}`)) {
|
|
276
|
+
if (result.status !== 0) {
|
|
210
277
|
outcome.errors.push(`${profile}:${label}失败:${result.stderr.trim() || `launchctl 退出码 ${result.status}`}`);
|
|
211
278
|
return outcome;
|
|
212
279
|
}
|
|
280
|
+
const after = await waitForLaunchdTransition(checked.definition, dshHome, loaded.pid, runner, 'stopped', waitOptions);
|
|
281
|
+
if (!after.ok) {
|
|
282
|
+
outcome.errors.push(`${profile}:${after.error ?? '服务或旧 PID 仍在'},停止未确认`);
|
|
283
|
+
return outcome;
|
|
284
|
+
}
|
|
213
285
|
}
|
|
214
286
|
outcome.messages.push(actionResult(profile, action, dryRun, `(plist 保留在 ${plistPath},可再次 start)`));
|
|
215
287
|
return outcome;
|
|
216
288
|
}
|
|
217
289
|
// start / restart:plist 可能尚未 bootstrap(曾被 stop),先确保已载入再 kickstart。
|
|
218
|
-
|
|
290
|
+
if (!loaded.registered)
|
|
291
|
+
outcome.actions.push(`launchctl bootstrap ${domain} ${plistPath}`);
|
|
219
292
|
outcome.actions.push(`launchctl kickstart ${action === 'restart' ? '-k ' : ''}${target}`);
|
|
220
293
|
if (!dryRun) {
|
|
221
|
-
|
|
294
|
+
if (!loaded.registered) {
|
|
295
|
+
const bootstrap = runner('launchctl', ['bootstrap', domain, plistPath]);
|
|
296
|
+
if (bootstrap.status !== 0) {
|
|
297
|
+
outcome.errors.push(`${profile}:载入失败:${bootstrap.stderr.trim() || bootstrap.status}`);
|
|
298
|
+
return outcome;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
222
301
|
const kickstartArgs = action === 'restart' ? ['kickstart', '-k', target] : ['kickstart', target];
|
|
223
302
|
const result = runner('launchctl', kickstartArgs);
|
|
224
303
|
if (result.status !== 0) {
|
|
225
304
|
outcome.errors.push(`${profile}:${label}失败:${result.stderr.trim() || `launchctl 退出码 ${result.status}`}`);
|
|
226
305
|
return outcome;
|
|
227
306
|
}
|
|
307
|
+
const after = await waitForLaunchdTransition(checked.definition, dshHome, loaded.pid, runner, action === 'restart' && loaded.registered ? 'restarted' : 'running', waitOptions);
|
|
308
|
+
if (!after.ok) {
|
|
309
|
+
outcome.errors.push(`${profile}:${after.error ?? '运行状态或新 PID 未确认'},${label}未确认`);
|
|
310
|
+
return outcome;
|
|
311
|
+
}
|
|
228
312
|
}
|
|
229
313
|
outcome.messages.push(actionResult(profile, action, dryRun));
|
|
230
314
|
return outcome;
|
package/lib/services.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.js","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"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"}
|
package/lib/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "0.1.
|
|
1
|
+
export declare const version = "0.1.53";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/lib/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '0.1.
|
|
1
|
+
export const version = '0.1.53';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/lib/weburl.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export interface ProfileWebUrl {
|
|
|
29
29
|
* - macOS launchd:读 `$DSH_HOME/logs/<profile>-host.log` 尾部
|
|
30
30
|
*
|
|
31
31
|
* 服务未注册时给出与 start/stop 一致的指引;服务未运行时明确提示先 start。
|
|
32
|
-
*
|
|
32
|
+
* Linux 保留展示 journal 历史 URL 的诊断行为;macOS 仅在已加载 job 有运行 PID 时读取日志。
|
|
33
33
|
*/
|
|
34
34
|
export declare function resolveManagedWebUrl(platform: NodeJS.Platform, home: string, dshHome: string, profile: string, runner?: CommandRunner): Promise<ProfileWebUrl>;
|
|
35
35
|
export declare function formatWebUrlResult(entries: readonly ProfileWebUrl[]): string;
|
package/lib/weburl.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"weburl.d.ts","sourceRoot":"","sources":["../src/weburl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"weburl.d.ts","sourceRoot":"","sources":["../src/weburl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAM7C;;;;GAIG;AAEH;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMtE;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAKD;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,aAA6B,GACpC,OAAO,CAAC,aAAa,CAAC,CA+DxB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,CAW5E"}
|
package/lib/weburl.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { defaultRunner } from "./run.js";
|
|
2
2
|
import { inspectManagedService, tailLogFile } from "./services.js";
|
|
3
3
|
import { profileLogPaths, systemdUnitName, SYSTEMD_UNIT_PATTERN } from "./paths.js";
|
|
4
|
+
import { inspectLaunchdDefinition, inspectLoadedLaunchd } from "./launchd-service.js";
|
|
4
5
|
/**
|
|
5
6
|
* Web URL:从运行中受管服务的 journal / host 日志中解析最新一次 `dsh web:` 行,
|
|
6
7
|
* 返回带 token 的完整授权 URL。绝不关闭或绕过 Web 认证——这里只是把 DSH 已经打印
|
|
@@ -30,11 +31,11 @@ const WEB_URL_LOOKBACK_LINES = 400;
|
|
|
30
31
|
* - macOS launchd:读 `$DSH_HOME/logs/<profile>-host.log` 尾部
|
|
31
32
|
*
|
|
32
33
|
* 服务未注册时给出与 start/stop 一致的指引;服务未运行时明确提示先 start。
|
|
33
|
-
*
|
|
34
|
+
* Linux 保留展示 journal 历史 URL 的诊断行为;macOS 仅在已加载 job 有运行 PID 时读取日志。
|
|
34
35
|
*/
|
|
35
36
|
export async function resolveManagedWebUrl(platform, home, dshHome, profile, runner = defaultRunner) {
|
|
36
37
|
const result = { profile, errors: [] };
|
|
37
|
-
const presence = await inspectManagedService(platform, home, profile);
|
|
38
|
+
const presence = await inspectManagedService(platform, home, profile, dshHome, runner);
|
|
38
39
|
if (!presence.managed) {
|
|
39
40
|
result.notice = presence.foreign
|
|
40
41
|
? `${profile}:${presence.definitionPath} 存在但不是 dsh-enhanced 受管服务,拒绝读取。`
|
|
@@ -62,6 +63,20 @@ export async function resolveManagedWebUrl(platform, home, dshHome, profile, run
|
|
|
62
63
|
}
|
|
63
64
|
}
|
|
64
65
|
else if (platform === 'darwin') {
|
|
66
|
+
const checked = await inspectLaunchdDefinition(home, dshHome, profile, runner);
|
|
67
|
+
if (!checked.definition) {
|
|
68
|
+
result.errors.push(`${profile}:plist 归属无法确认`);
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
71
|
+
const loaded = inspectLoadedLaunchd(checked.definition, dshHome, runner);
|
|
72
|
+
if (loaded.error) {
|
|
73
|
+
result.errors.push(`${profile}:${loaded.error}`);
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
76
|
+
if (!loaded.registered || !loaded.running) {
|
|
77
|
+
result.notice = `${profile}:受管服务未运行;先运行 dsh-rsi start --profile ${profile}。`;
|
|
78
|
+
return result;
|
|
79
|
+
}
|
|
65
80
|
const [stdoutLog] = profileLogPaths(dshHome, profile);
|
|
66
81
|
if (stdoutLog === undefined) {
|
|
67
82
|
result.errors.push(`${profile}:无法解析 host 日志路径。`);
|
package/lib/weburl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"weburl.js","sourceRoot":"","sources":["../src/weburl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"weburl.js","sourceRoot":"","sources":["../src/weburl.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED