我试图使用/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
流程才能使其正常工作(不是首选,但我已经跨了头脑,因为不确定是否将其转换为同步任务)?
答案 0 :(得分: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 情况。