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

问题描述 投票:4回答:1

[我试图用/sys/kernel/config/usb_gadget写入fs.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.writeFileSync是否无法写入sys下的文件,还是我缺少其他内容?

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

我是否需要spawn一个echo流程才能使其正常工作(不是首选,但我已经跨过了头脑-因为不确定我如何将其转换为同步任务)?

node.js file-io fs file-writing
1个回答
4
投票

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情况。]

© www.soinside.com 2019 - 2024. All rights reserved.