fix: rewrite _setHostname using fs to avoid sed -i temp file issue; bump to 1.3.0
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -508,20 +508,26 @@ class ClawClient {
|
|||||||
|
|
||||||
_setHostname(clawId) {
|
_setHostname(clawId) {
|
||||||
const hostname = `claw-${clawId}`;
|
const hostname = `claw-${clawId}`;
|
||||||
// clawd runs as root (no User= in service), no sudo needed.
|
|
||||||
// Use ';' not '&&' so each command runs independently even if one fails.
|
// 运行时 hostname(无需文件权限)
|
||||||
const cmd = [
|
exec(`hostname ${hostname}`, { shell: true });
|
||||||
`hostname ${hostname}`,
|
|
||||||
`echo "${hostname}" > /etc/hostname`,
|
// 写 /etc/hostname(fs 直接写文件,不需要目录可写)
|
||||||
`sed -i 's/^127\\.0\\.1\\.1.*/127.0.1.1 ${hostname}/' /etc/hosts`,
|
try {
|
||||||
].join('; ');
|
fs.writeFileSync('/etc/hostname', hostname + '\n', 'utf8');
|
||||||
exec(cmd, { shell: true }, (err) => {
|
} catch (e) {
|
||||||
if (err) {
|
log.warn('clawd', `write /etc/hostname failed: ${e.message}`);
|
||||||
log.warn('clawd', `hostname set failed: ${err.message}`);
|
}
|
||||||
} else {
|
|
||||||
log.info('clawd', `hostname -> ${hostname}`);
|
// 更新 /etc/hosts(fs 读写,绕过 sed -i 需要目录可写的限制)
|
||||||
}
|
try {
|
||||||
});
|
const content = fs.readFileSync('/etc/hosts', 'utf8');
|
||||||
|
const updated = content.replace(/^127\.0\.1\.1.*/m, `127.0.1.1 ${hostname}`);
|
||||||
|
fs.writeFileSync('/etc/hosts', updated, 'utf8');
|
||||||
|
log.info('clawd', `hostname -> ${hostname}`);
|
||||||
|
} catch (e) {
|
||||||
|
log.warn('clawd', `write /etc/hosts failed: ${e.message}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ── OpenClaw 配置 ────────────────────────────────────────────────────────────
|
// ── OpenClaw 配置 ────────────────────────────────────────────────────────────
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "clawd",
|
"name": "clawd",
|
||||||
"version": "1.2.9",
|
"version": "1.3.0",
|
||||||
"description": "Claw Box daemon - connects local Linux box to claw.cutos.ai via WebSocket",
|
"description": "Claw Box daemon - connects local Linux box to claw.cutos.ai via WebSocket",
|
||||||
"main": "lib/client.js",
|
"main": "lib/client.js",
|
||||||
"bin": {
|
"bin": {
|
||||||
|
|||||||
Reference in New Issue
Block a user