Как редактировать файл в /proc, который можно просматривать с помощью cat, но нельзя редактировать с помощью mousepad и abiword?

Как редактировать файл в /proc, который можно просматривать с помощью cat, но нельзя редактировать с помощью mousepad и abiword?

Как говорится в вопросе, мне нужно отредактировать /proc/acpi/wakeupфайл, но когда я открываю его любым текстовым редактором, он показывает пустой файл. catС другой стороны, команда отображает правильное содержимое файла в терминале. Когда я перехожу к этому файлу в файловом менеджере, он говорит, что его размер составляет 0 байт. Я использую Xubuntu 15.04. Я полностью запутался.

решение1

/proc(страница руководства,документы ядра) — это виртуальная файловая система (как есть /sys-документы ядра). Файлы в /procне являютсянастоящийфайлы, но и способы доступа к информации и настройкам из ядра. Вам не следует использовать редактор для редактирования файлов в /proc, а писать напрямую в эти файлы:

sudo sh -c 'echo foo > /proc/some/file'
echo foo | sudo tee /proc/some/file

Когда вы пытаетесь прочитать или записать его, ядро ​​преобразует действия в системные вызовы внутри себя и делает правильно. Некоторые редакторы все еще могут просматривать содержимое (попробуйте Vim, например), но запись в него — это уже другая история.


Для особого класса файлов, находящихся в /proc/sys(документы ядра,Арка Вики), есть еще одна альтернатива. Вы можете использовать файлы конфигурации в/etc/sysctl.confи /etc/sysctl.d/*.confвносить постоянные изменения в их значения. Файл /proc/sys/foo/barможет быть установлен с помощью ключа foo.barв одном из этих файлов.

Например, /proc/sys/vm/swappinessможно задать, добавив /etc/sysctl.d/90-swappiness.confсодержащий:

vm.swappiness = 10

И бегу:

service procps start

Вы также можете внести одноразовые изменения (которые не сохранятся после следующей перезагрузки) с помощьюsysctlкоманда напрямую:

sudo sysctl -w vm.swappiness=10

Связанный контент