Node.js:使用 fs.writeFileSync 写入系统文件

Node.js: Writing to system files with fs.writeFileSync

提问人:Sterling Butters 提问时间:1/31/2020 最后编辑:Sterling Butters 更新时间:2/5/2020 访问量:356

问:

我正在尝试写入 with 下的系统文件,但是当写入内容时,该文件保持不变(原始内容保持不变)并导致/sys/kernel/config/usb_gadgetfs.writeFileSync""

Error: EBUSY: resource busy or locked, write
    at Object.writeSync (fs.js:581:3)
    at Object.writeFileSync (fs.js:1275:26)
    at Socket.<anonymous> (/opt/sterling/ip-kvm-interface/app.js:249:6)
    at Socket.emit (events.js:210:5)
    at /opt/sterling/ip-kvm-interface/node_modules/socket.io/lib/socket.js:528:12
    at processTicksAndRejections (internal/process/task_queues.js:75:11) {
  errno: -16,
  syscall: 'write',
  code: 'EBUSY'
}

在写一些其他内容时。目标写入文件的权限为 777。

无法写入下面的文件,或者我是否遗漏了其他内容?fs.writeFileSyncsys

using 不返回任何内容(即使 Node 进程正在运行),也不返回任何内容。fsuser /sys/kernel/config/usb_gadget/kvm-gadget/UDClsof | grep /sys/kernel/config/usb_gadget/kvm-gadget/UDC

我是否必须有一个过程才能使其工作(不是首选,而是我脑海中闪过 - 因为不确定如何将其转换为同步任务)?spawnecho

节点.js -IO FS 文件写入

评论

0赞 jfriend00 1/31/2020
不解释资源正在使用中,您的进程无法写入?Error: EBUSY: resource busy or locked
0赞 Joe 1/31/2020
您是否能够以与 shell 中的进程相同的用户身份执行这些写入?
0赞 Sterling Butters 1/31/2020
@jfriend00错误消息的整个范围都包含在 OP 中
0赞 Sterling Butters 1/31/2020
@Joe是的,我可以,也可以没有sudo
1赞 Sterling Butters 2/6/2020
@AmerllicA如果您不同意我提供的答案,我可以在今天晚些时候发布。即,如果答案与您预期的问题不匹配,请告诉我

答:

4赞 Sterling Butters 2/5/2020 #1

https://github.com/nodejs/help/issues/2459

Are there undocumented limitations to fs.writeFileSync that I am unaware of?

没有特定于 fs.writeFileSync() 的内容,您可能会收到相同的错误 使用普通的 C 程序。

/sys/kernel/config/usb_gadget 不是一个真实的文件,它是一个通信 带有内核的 USB 小工具驱动程序的通道。就是那个司机 返回错误。

(如果你真的感兴趣,我可以向你指出代码行。 它是内核源代码树中的 drivers/usb/gadget/configfs.c 案例。