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

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

1 ответ

Решение

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

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

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


Для специального класса файлов, те в /proc/sys ( документы по ядру, Arch Wiki), есть другая альтернатива. Вы можете использовать файлы конфигурации в /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 systecl -w vm.swappiness = 10
Другие вопросы по тегам