feat: install.sh 预装 ttyd,frpc.js 去掉运行时下载
install.sh: - 移除系统自带 ttyd 包(避免与 clawd 托管的 ttyd 端口冲突) - 安装阶段下载 ttyd 1.7.7 到 /etc/clawd/ttyd,自动检测 arch - 下载失败时给出提示和手动下载地址 frpc.js: - startTtyd() 不再尝试运行时下载,binary 不存在时报错提示重跑 install.sh - pkill 改为杀所有 ttyd 进程(pkill -x ttyd),不限路径, 避免系统自带 ttyd 占用 7681 端口导致 clawd 的 ttyd 启动失败 Made-with: Cursor
This commit is contained in:
14
lib/frpc.js
14
lib/frpc.js
@@ -101,22 +101,18 @@ async function downloadTtyd() {
|
||||
}
|
||||
|
||||
/**
|
||||
* 启动 ttyd(如未安装先下载)。
|
||||
* 启动 ttyd(由 install.sh 预装到 TTYD_BIN)。
|
||||
* ttyd 绑定 127.0.0.1:7681,供 frpc 代理。
|
||||
*/
|
||||
async function startTtyd() {
|
||||
if (!fs.existsSync(TTYD_BIN)) {
|
||||
try {
|
||||
await downloadTtyd();
|
||||
} catch (e) {
|
||||
log.warn('ttyd', '下载失败:', e.message);
|
||||
return false;
|
||||
}
|
||||
log.warn('ttyd', `未找到 ttyd(${TTYD_BIN}),请重新运行 install.sh`);
|
||||
return false;
|
||||
}
|
||||
|
||||
// 终止旧进程
|
||||
// 终止所有 ttyd 进程(包括系统自带的,避免端口冲突)
|
||||
try {
|
||||
execSync(`pkill -f "${TTYD_BIN}"`, { timeout: 3000 });
|
||||
execSync('pkill -x ttyd 2>/dev/null; pkill -x ttyd.aarch64 2>/dev/null; true', { timeout: 3000, shell: true });
|
||||
await new Promise(r => setTimeout(r, 500));
|
||||
} catch (_) {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user