Возможный дубликат :
sudo & redirect output
Это предложения powertop для экономии энергии:
echo 1500 > /proc/sys/vm/dirty_writeback_centisecs
echo 1 > /sys/module/snd_hda_intel/parameters/power_save
Однако я не могу выполнить их из терминала даже как sudo. Идеи?
Ваша команда не работает потому что перенаправление > file
сделан текущей оболочкой до выполнения команды, поэтому прежде чем sudo будет в действительности.
Существует команда, названная tee
, это пишет в файл и в stdout, что он получает на его stdin: это удобно для записи чего-то в файл без перенаправления. Если файл может быть изменен только корнем, достаточно предварительно ожидать sudo
кому: tee
.
echo 1500 | sudo tee /proc/sys/vm/dirty_writeback_centisecs
Другой способ получить желаемый результат, поддерживая перенаправление, состоит в том, чтобы переместить перенаправление в подоболочку, выполняемую корнем, через sudo
:
sudo sh -c 'echo 1500 > /proc/sys/vm/dirty_writeback_centisecs'
Наконец, можно ввести корневую оболочку различными способами, и Вы остаетесь корнем до Вас exit
явно та оболочка:
sudo su
sudo -s
sudo bash
Для получения дополнительной информации посмотрите manuale страницы sudo
, su
и конечно bash
.
Вместо того, чтобы создать cronjob для того, чтобы установить значения, как описано @Seppo Erviälä, можно использовать конфигурационные файлы procps
и sysfsutils
.
Значения для /proc/sys
может быть установлен в файле /etc/sysctl.conf
. Сделать echo 1500 > /proc/sys/vm/dirty_writeback_centisecs
персистентный, добавьте строку с:
vm.dirty_writeback_centisecs = 1500
Загрузить изменения в /etc/sysctl.conf
к текущей сессии, выполненной:
sudo sysctl -p
Для того, чтобы установить значения в /sys
пакет sysfsutils
потребности, которые будут установлены. Конфигурационный файл расположен в /etc/sysfs.conf
. Сделать echo 1 > /sys/module/snd_hda_intel/parameters/power_save
персистентный, добавьте строку с:
module/snd_hda_intel/parameters/power_save = 1
Применять значения в /etc/sysfs.conf
к текущей сессии, выполненной:
sudo /etc/init.d/sysfsutils restart
Сделайте a sudo -s
или a sudo su
во-первых:
Из сценария:
# more powersave
echo 1500 > /proc/sys/vm/dirty_writeback_centisecs
echo 1 > /sys/module/snd_hda_intel/parameters/power_save
# ./powersave
#
Лучшая практика была бы к ussue sudo -s
прежде, чем активировать сценарий (следовательно #).
Править: См. ответ @Lekensteyn для более надлежащего способа отредактировать /proc/sys
и /sys
значения по умолчанию.
Выполнение этих предложений из командной строки только включит им для Вашей текущей сессии, и они сбросят к значениям по умолчанию после перезагрузки. Если Вы хотите включить этим предложениям каждый раз, когда Ваша система запускается, необходимо превратить их в сценарий:
#!/bin/dash
echo 1500 > /proc/sys/vm/dirty_writeback_centisecs
echo 1 > /sys/module/snd_hda_intel/parameters/power_save
Можно поместить этот сценарий, где-нибудь удобный, например. /root/power_save.sh
.
Затем Вы хотите удостовериться, что это работает с полномочиями пользователя root каждый раз, когда Ваша система запускается. Это может быть, покончили sudo crontab -e
который открывает список основанных на времени задач для корня. Добавьте строку:
@reboot /root/power_save.sh
Не забывайте делать свой исполняемый файл сценария:
sudo chmod u+x /root/power_save.sh
Таким образом, эти опции экономии электроэнергии будут включены для всех пользователей, даже перед входом в систему, и никакой пароль не необходим для авторизации их каждый раз.