Вы не можете действительно заставить процесс работать меньше. Можно использовать nice
для предоставления ему более низкого приоритета но это относительно других процессов. Способ выполнить вентилятор ЦП, в то время как процесс работает, состоит в том, чтобы использовать usleep(3)
для принуждения процесса выполнение указывают определенное количество времени, но это включило бы любое исправление tar
или использование LD_PRELOAD
механизм для обеспечения исправленной функции это tar
использование много (например. fopen(3)
).
Я подозреваю, что Ваши лучшие обходные решения являются аппаратными, которые Вы упомянули на SuperUser: хранение ноутбука охлаждается и/или понижение тактовой частоты ЦП.
Раздражение, но возможно жизнеспособное обходное решение (клудж, действительно) работает на 'макроскопическом' уровне. Вместо создания tar
выполните 100 мс каждые 200 мс, Вы могли заставить его выполнить одну секунду из каждых двух.Примечание: это - ужасный, ужасный клудж. Но эй, это могло бы даже работать!
tar cjf some-file.tar.bz2 /some-directory &
while true; do
sleep 1 # Let it run for a second
kill -STOP $! 2>/dev/null || break
sleep 1 # Pause it for a second
kill -CONT $! 2>/dev/null || break
done
Первое sleep
корректирует время сна, второй корректирует время выполнения.как есть Теперь, это имеет 50%-й рабочий цикл. Для подавления температуры необходимо будет очень вероятно уменьшить рабочий цикл до, возможно, 25% или ниже (1 второе выполнение, сон 3 секунд = 1 из каждых 4 секунд = 25%-й рабочий цикл). Команда оболочки sleep
может занять дробные времена, между прочим. Таким образом, Вы могли даже сказать sleep 0.1
. Сохраните его более чем 0,001 только, чтобы быть уверенными, и не забыть, что выполнение сценария добавляет ко времени также.
Можно удалить строку из текстового файла с sed
(другие инструменты существуют).
Например:
sed -i -e '/myapp/d' .bash_profile
удаляет из .bash_profile
каждая строка, содержащая строку myapp
.
sed -i '/^export MYAPP_HOME=\/opt\/myapp$/d' ~/.bash_profile
Файл как ~/.bash_profile
жизни в корневом каталоге пользователя. Такой файл полностью находится под контролем пользователя. Глобальные действующие команды как rpm
как предполагается, не изменяют такие файлы.
У Вас обычно есть основной конфигурационный файл, который поставляется RPM-пакетом.
У Вас затем есть глобальный конфигурационный файл, который может использоваться корнем для перезаписи некоторых предпочтений, характерных для данной системы.
Затем у Вас есть персональные конфигурационные файлы в Вашем корневом каталоге, который можно использовать для переопределения глобальной установки с персональными предпочтениями.
Команда как rpm
должен только изменить первый и никогда не изменять последнего.
/etc/profile.d
каталог, отбросьте файл, содержащий это export
выровняйте там. Иначе можно отредактировать /etc/profile
, но очень бойтесь разрушать настройки системным администратором.
– Gilles 'SO- stop being evil'
30.05.2013, 00:10