claw-subagent-service 0.0.128 → 0.0.130

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.
@@ -223,9 +223,68 @@ start_docker() {
223
223
  debug_log "openclaw 版本信息:"
224
224
  openclaw --version 2>&1 | head -5 || true
225
225
 
226
- nohup openclaw gateway --port "$PORT" --host 0.0.0.0 > "$log_file" 2>&1 &
226
+ # 检查 openclaw gateway help,确认参数格式
227
+ debug_log "openclaw gateway help 信息:"
228
+ openclaw gateway --help 2>&1 | head -20 || true
227
229
 
228
- log_info "OpenClaw 服务启动命令已发送(PID: $!)"
230
+ # 尝试启动,如果失败则尝试其他参数格式
231
+ log_info "尝试启动 openclaw gateway..."
232
+
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
+ # 尝试使用正确的参数启动
242
+ # 注意:openclaw gateway 可能使用不同的参数名
243
+ log_info "尝试启动: openclaw gateway --port $PORT"
244
+ nohup openclaw gateway --port "$PORT" > "$log_file" 2>&1 &
245
+
246
+ # 等待 5 秒检查进程是否启动(给更多时间)
247
+ sleep 5
248
+ local started_pid=$!
249
+ log_info "启动的进程 PID: $started_pid"
250
+
251
+ # 检查进程是否存在
252
+ if ! ps -p "$started_pid" > /dev/null 2>&1; then
253
+ log_warn "进程 $started_pid 已退出,检查日志..."
254
+ if [ -f "$log_file" ]; then
255
+ log_warn "openclaw 日志内容:"
256
+ cat "$log_file" | tail -20
257
+ fi
258
+ log_error "启动失败,请检查日志:$log_file"
259
+ exit 1
260
+ fi
261
+
262
+ log_info "进程 $started_pid 正在运行"
263
+
264
+ # 检查进程监听的端口
265
+ log_info "检查进程监听的端口..."
266
+ sleep 2
267
+ local listening_ports=$(netstat -tlnp 2>/dev/null | grep "$started_pid" || ss -tlnp 2>/dev/null | grep "$started_pid" || echo "")
268
+ if [ -n "$listening_ports" ]; then
269
+ log_info "进程 $started_pid 监听的端口:"
270
+ echo "$listening_ports"
271
+ else
272
+ log_warn "进程 $started_pid 未监听任何端口,检查是否有子进程..."
273
+ # 检查子进程
274
+ local child_pids=$(pgrep -P "$started_pid" 2>/dev/null || echo "")
275
+ if [ -n "$child_pids" ]; then
276
+ log_info "发现子进程: $child_pids"
277
+ for child_pid in $child_pids; do
278
+ local child_ports=$(netstat -tlnp 2>/dev/null | grep "$child_pid" || ss -tlnp 2>/dev/null | grep "$child_pid" || echo "")
279
+ if [ -n "$child_ports" ]; then
280
+ log_info "子进程 $child_pid 监听的端口:"
281
+ echo "$child_ports"
282
+ fi
283
+ done
284
+ fi
285
+ fi
286
+
287
+ log_info "OpenClaw 服务启动命令已发送(PID: $started_pid)"
229
288
  log_info "日志文件: $log_file"
230
289
 
231
290
  # 等待端口就绪
@@ -235,6 +294,10 @@ start_docker() {
235
294
  log_info "Success"
236
295
  else
237
296
  log_error "服务启动超时,请检查日志:$log_file"
297
+ log_info "openclaw 进程状态:"
298
+ ps aux | grep -v grep | grep openclaw || true
299
+ log_info "端口监听状态:"
300
+ netstat -tlnp 2>/dev/null | grep openclaw || ss -tlnp 2>/dev/null | grep openclaw || true
238
301
  exit 1
239
302
  fi
240
303
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claw-subagent-service",
3
- "version": "0.0.128",
3
+ "version": "0.0.130",
4
4
  "description": "虾说智能助手",
5
5
  "main": "cli.js",
6
6
  "bin": {
@@ -156,6 +156,26 @@ async function getOpenClawStatus(port = 18789) {
156
156
  const processExists = checkProcessExists();
157
157
  if (processExists) {
158
158
  console.warn(`[PortChecker] 警告: openclaw 进程存在,但端口 ${port} 未监听。服务可能未正确启动或已崩溃。`);
159
+ // 尝试获取进程详细信息
160
+ try {
161
+ const { execSync } = require('child_process');
162
+ const psOutput = execSync('ps aux | grep -v grep | grep openclaw', { encoding: 'utf8', timeout: 5000 }).trim();
163
+ console.log(`[PortChecker] 进程详细信息:\n${psOutput}`);
164
+
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 进程未监听任何端口`);
172
+ }
173
+ } catch (e) {
174
+ // 忽略错误
175
+ }
176
+ } catch (e) {
177
+ // 忽略错误
178
+ }
159
179
  }
160
180
 
161
181
  console.log(`[PortChecker] 端口 ${port} 检测为未运行`);