У меня есть начало iMac 2009 с проблемой с датчиком. НЕЧЕТНЫЕ и вентиляторы процессора выполняются в полной скорости. Для снижения их к минимальной скорости в Ubuntu, я должен установить скорости в Терминале, с помощью этого метода. Вместо того, чтобы делать это после каждой начальной загрузки, я сделал сценарий удара, чтобы сделать это для меня, но это не работает.
Это - мой сценарий:
#!/bin/bash
echo "Beginning script..."
echo "Logging in as root..."
sudo su
cd /sys/devices/platform/applesmc.768/
echo "Enabling manual override for Fan 1 (ODD fan)..."
echo '1' > fan1_manual
echo "Setting speed of Fan 1 (ODD fan) to 1650 RPM..."
echo '1650' > fan1_output
echo "Enabling manual override for Fan 3 (CPU fan)..."
echo '1' > fan3_manual
echo "Setting speed of Fan 3 (CPU fan) to 1200 RPM..."
echo '1200' > fan3_output
echo "Done."
Проблема в "sudo su". Это запрашивает пароль, но после ввода пароля, ничего не происходит. Это просто останавливается.
Ваш скрипт останавливается, потому что sudo su
запускает новый процесс оболочки. Ваш оригинальный процесс оболочки - тот, который выполняет ваш сценарий - ожидает окончания работы вспомогательной оболочки.
Я предлагаю запускать весь скрипт с правами root вместо того, чтобы просить войти в систему как root из самого скрипта. Удалите часть sudo su
из своего кода и запустите скрипт следующим образом:
$ sudo ./yourscript
Это обычная практика. Обратите внимание, что сценарии системного администрирования, такие как, например, update-grub
, не запрашивают пароль root - они просто должны запускаться с правами root.
Команда sudo su
создает новую сессию оболочки. Это ожидает Вас для ввода команд. Это НЕ попытка выполнить команды после той строки.
у Вас есть 2 опции:
1) Извлечение команды после sudo su
в отдельном сценарии и выполненный, что с sudo
2), изменяют строки как echo '1' > fan1_manual
к echo '1' | sudo tee fan1_manual
Вы могли просто вынуть интерактивный материал и скопировать строки в /etc/rc.local
между # По умолчанию этот сценарий ничего не делает. и выход 0 строк
sudo nano /etc/rc.local
Вставьте отредактированный сценарий..
cd /sys/devices/platform/applesmc.768/
echo "Enabling manual override for Fan 1 (ODD fan)..."
echo '1' > fan1_manual
echo "Setting speed of Fan 1 (ODD fan) to 1650 RPM..."
echo '1650' > fan1_output
echo "Enabling manual override for Fan 3 (CPU fan)..."
echo '1' > fan3_manual
echo "Setting speed of Fan 3 (CPU fan) to 1200 RPM..."
echo '1200' > fan3_output
Ctl o Входят, сохранит файл
Ctl x выйдет из нано
Таким образом, это выполнится, когда Вы загрузитесь.