claw-subagent-service 0.0.129 → 0.0.131

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.
@@ -229,20 +229,67 @@ start_docker() {
229
229
 
230
230
  # 尝试启动,如果失败则尝试其他参数格式
231
231
  log_info "尝试启动 openclaw gateway..."
232
- nohup openclaw gateway --port "$PORT" --host 0.0.0.0 > "$log_file" 2>&1 &
233
232
 
234
- # 等待 2 秒检查进程是否启动
235
- sleep 2
233
+ # 先尝试查看 openclaw gateway 的帮助信息,确认正确的参数格式
234
+ log_info "检查 openclaw gateway 支持的参数..."
235
+ openclaw gateway --help > /tmp/openclaw-help.txt 2>&1 || true
236
+ if [ -f /tmp/openclaw-help.txt ]; then
237
+ log_info "openclaw gateway help 输出:"
238
+ cat /tmp/openclaw-help.txt | head -30
239
+ fi
240
+
241
+ # 检查 openclaw gateway run --help,确认 run 子命令的参数
242
+ log_info "检查 openclaw gateway run --help..."
243
+ openclaw gateway run --help > /tmp/openclaw-run-help.txt 2>&1 || true
244
+ if [ -f /tmp/openclaw-run-help.txt ]; then
245
+ log_info "openclaw gateway run help 输出:"
246
+ cat /tmp/openclaw-run-help.txt | head -30
247
+ fi
248
+
249
+ # 尝试使用正确的参数启动
250
+ # 注意:openclaw gateway 可能使用不同的参数名
251
+ # 在 Docker 环境中,使用 run 子命令前台运行,而不是后台启动
252
+ log_info "尝试启动: openclaw gateway run --port $PORT"
253
+ nohup openclaw gateway run --port "$PORT" > "$log_file" 2>&1 &
254
+
255
+ # 等待 5 秒检查进程是否启动(给更多时间)
256
+ sleep 5
236
257
  local started_pid=$!
258
+ log_info "启动的进程 PID: $started_pid"
259
+
260
+ # 检查进程是否存在
237
261
  if ! ps -p "$started_pid" > /dev/null 2>&1; then
238
- log_warn "进程 $started_pid 已退出,尝试其他启动方式..."
239
- # 尝试不带 --host 参数
240
- nohup openclaw gateway --port "$PORT" > "$log_file" 2>&1 &
241
- started_pid=$!
242
- sleep 2
243
- if ! ps -p "$started_pid" > /dev/null 2>&1; then
244
- log_error "所有启动方式均失败,请检查日志:$log_file"
245
- exit 1
262
+ log_warn "进程 $started_pid 已退出,检查日志..."
263
+ if [ -f "$log_file" ]; then
264
+ log_warn "openclaw 日志内容:"
265
+ cat "$log_file" | tail -20
266
+ fi
267
+ log_error "启动失败,请检查日志:$log_file"
268
+ exit 1
269
+ fi
270
+
271
+ log_info "进程 $started_pid 正在运行"
272
+
273
+ # 检查进程监听的端口
274
+ log_info "检查进程监听的端口..."
275
+ sleep 2
276
+ local listening_ports=$(netstat -tlnp 2>/dev/null | grep "$started_pid" || ss -tlnp 2>/dev/null | grep "$started_pid" || echo "")
277
+ if [ -n "$listening_ports" ]; then
278
+ log_info "进程 $started_pid 监听的端口:"
279
+ echo "$listening_ports"
280
+ else
281
+ log_warn "进程 $started_pid 未监听任何端口,检查是否有子进程..."
282
+ # 检查子进程
283
+ local child_pids=$(pgrep -P "$started_pid" 2>/dev/null || echo "")
284
+ if [ -n "$child_pids" ]; then
285
+ log_info "发现子进程: $child_pids"
286
+ for child_pid in $child_pids; do
287
+ local child_ports=$(netstat -tlnp 2>/dev/null | grep "$child_pid" || ss -tlnp 2>/dev/null | grep "$child_pid" || echo "")
288
+ if [ -n "$child_ports" ]; then
289
+ log_info "子进程 $child_pid 监听的端口:"
290
+ echo "$child_ports"
291
+ fi
292
+ done
246
293
  fi
247
294
  fi
248
295
 
@@ -256,6 +303,10 @@ start_docker() {
256
303
  log_info "Success"
257
304
  else
258
305
  log_error "服务启动超时,请检查日志:$log_file"
306
+ log_info "openclaw 进程状态:"
307
+ ps aux | grep -v grep | grep openclaw || true
308
+ log_info "端口监听状态:"
309
+ netstat -tlnp 2>/dev/null | grep openclaw || ss -tlnp 2>/dev/null | grep openclaw || true
259
310
  exit 1
260
311
  fi
261
312
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claw-subagent-service",
3
- "version": "0.0.129",
3
+ "version": "0.0.131",
4
4
  "description": "虾说智能助手",
5
5
  "main": "cli.js",
6
6
  "bin": {
@@ -162,17 +162,16 @@ async function getOpenClawStatus(port = 18789) {
162
162
  const psOutput = execSync('ps aux | grep -v grep | grep openclaw', { encoding: 'utf8', timeout: 5000 }).trim();
163
163
  console.log(`[PortChecker] 进程详细信息:\n${psOutput}`);
164
164
 
165
- // 尝试获取进程监听的端口
166
- const pid = psOutput.split(/\s+/)[1];
167
- if (pid) {
168
- try {
169
- const netstatOutput = execSync(`netstat -tlnp 2>/dev/null | grep ${pid} || ss -tlnp 2>/dev/null | grep ${pid}`, { encoding: 'utf8', timeout: 5000 }).trim();
170
- if (netstatOutput) {
171
- console.log(`[PortChecker] 进程 ${pid} 监听的端口:\n${netstatOutput}`);
172
- }
173
- } catch (e) {
174
- // 忽略错误
165
+ // 尝试获取所有 openclaw 进程监听的端口
166
+ try {
167
+ const netstatOutput = execSync('netstat -tlnp 2>/dev/null | grep openclaw || ss -tlnp 2>/dev/null | grep openclaw', { encoding: 'utf8', timeout: 5000 }).trim();
168
+ if (netstatOutput) {
169
+ console.log(`[PortChecker] openclaw 进程监听的端口:\n${netstatOutput}`);
170
+ } else {
171
+ console.log(`[PortChecker] openclaw 进程未监听任何端口`);
175
172
  }
173
+ } catch (e) {
174
+ // 忽略错误
176
175
  }
177
176
  } catch (e) {
178
177
  // 忽略错误