oclaw/runtime/operations/scripts/weixin_stop.ps1
oliver 4a23b715a2 重构仓库目录为统一的 runtime 分层并清理历史 openclaw 残留。
本次迁移将网关/通道/工具/技能/脚本与协议资源集中到新结构,统一路径常量与脚本转发机制,减少顶层噪音并保证运行与测试行为一致。

Made-with: Cursor
2026-04-25 01:24:23 +08:00

41 lines
965 B
PowerShell

param(
[string]$ChannelId = "oclaw-weixin",
[switch]$Force
)
$ErrorActionPreference = "Stop"
function Resolve-RepoRoot {
$here = Split-Path -Parent $PSCommandPath
return (Resolve-Path (Join-Path $here "..")).Path
}
$oclawRoot = Resolve-RepoRoot
$sidecarRoot = Join-Path $oclawRoot "data\\channel_sidecar\\$ChannelId"
$pidFile = Join-Path $sidecarRoot "pid.txt"
if (-not (Test-Path $pidFile)) {
Write-Host "[ok] not running (no pid file)"
exit 0
}
$procId = (Get-Content -Path $pidFile -ErrorAction SilentlyContinue | Select-Object -First 1)
if (-not $procId) {
Remove-Item -Force $pidFile -ErrorAction SilentlyContinue
Write-Host "[ok] not running (empty pid file)"
exit 0
}
try {
if ($Force) {
taskkill.exe /PID $procId /T /F | Out-Null
} else {
taskkill.exe /PID $procId /T | Out-Null
}
} catch {
# Ignore if already dead.
}
Remove-Item -Force $pidFile -ErrorAction SilentlyContinue
Write-Host "[ok] stopped pid=$procId"