当使用sudo tee
or时sudoedit
,我收到Invalid argument
错误。
sudoedit: unable to write to /sys/power/mem_sleep: Invalid argument
sudoedit: contents of edit session left in /var/tmp/mem_sleep.c9QzrIn7
即使用户root
(after su
)vi
直接在文件上使用也会导致写入错误:
"/sys/power/mem_sleep" E514: Write error (file system full?)
WARNING: Original file may be lost or damaged
don't quit the editor until the file is successfully written!
重新加载该文件:e!
表明该文件在磁盘上未发生更改。系统未满,我可以以/usr
管理员身份在例如中写入文件,尽管不是在/sys/power
.
A上一个问题通过确保文件以管理员身份写入来解决具有相同症状的问题,但在这里我应该拥有权限?
>ls -l /sys/power/mem_sleep
-rw-r--r-- 1 root root 4096 Feb 6 09:03 /sys/power/mem_sleep
是否对文件内容有一些内核控制,是否应该使用一些专用实用程序重写?
这是 Debian GNU/Linux 12(书呆子)
答案1
在该文件系统条目上使用 vi 没有任何意义,因为它是不是一个“磁盘上的文件”,它实际上只是一个内核 API。
在本例中,ab API 只接受特定的字符串,它会告诉您系统上有哪些可用的东西。您无法更改它,并且您正在编写的内容在您的系统上不可用,因此写入该文件不起作用。
我不知道你想达到什么目的,所以我只能给出一般性的指导:
您尝试与之交互的界面记录在https://www.kernel.org/doc/Documentation/power/states.txt。
在任何不是针对特定嵌入式设备专门定制的 Linux 系统上,您肯定不想自己与此界面进行交互 - 请检查系统的管理实用程序,这也会告诉 Userland 程序您正在即将挂起,这对于许多应用程序、Userland 文件系统、基于 libusb 的驱动程序等可能是必需的。而且,这些实用程序使用起来很简单;在过去糟糕的日子里,它只是一直在运行pm-suspend
,在稍微不那么糟糕的日子里systemctl suspend
,它实际上确保了所有可能在挂起时中断的组件首先得到通知和询问。