
Если говорить вкратце, моя проблема заключается в том, что мне приходится запускать скрипт каждый раз, когда я использую компьютер, поэтому я пытаюсь немного автоматизировать этот процесс.
В моей системе установлена карта nvidia gt540m vga. Карта двойная. В ней одна карта high end для требовательных задач, а для всего остального используется встроенная карта low end.
На данный момент Ubuntu не поддерживает этот тип видеокарт и постоянно питает обе карты, при этом используется только встроенная.
Это приводит к очень короткому сроку службы батареи.
Я новичок в Ubuntu, поэтому мне пришлось изучить массу руководств, прежде чем я нашел скрипт для решения этой проблемы.
Я загрузил папку acpi_call в каталог /home/anpel и с помощью следующих команд отключил карту:
cd /acpi_call
sudo insmod acpi_call.ko
sudo ./test_off.sh
Следующим шагом, поскольку мне приходилось вручную запускать команды каждый раз при загрузке, было создание скрипта оболочки на моем рабочем столе, который я запускаю, он запрашивает мой пароль, и после его ввода он убивает мою карту. Скрипт выглядит так:
cd ~/acpi_call
sudo insmod acpi_call.ko
sudo ./test_off.sh
echo VGA card dead
exit
Теперь я пытаюсь заставить свою систему запускать этот скрипт при каждой загрузке компьютера, чтобы мне не приходилось делать это вручную каждый раз.
У меня нет опыта, чтобы что-либо менять в своей системе без какого-либо руководства, поскольку я считаю, что весьма вероятно, что я все испорчу, и я понятия не имею, как навести порядок, поэтому я ничего толком не пробовал, но я читал, что добавление моего скрипта в файл /etc/rc.local решит эту задачу.
Это правда или мне нужно попробовать что-то еще?
---- РЕДАКТИРОВАТЬ -----
Я использую Ubuntu 11.10, извините, что не упомянул об этом.
решение1
Правильное место для скриптов, которые должны запускаться при загрузке, — это вызов скрипта из /etc/rc.local
Комментарии в файле резюмируют это:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
решение2
Вы можете запустить свой файл скрипта как автозапускаемое приложение (Система - Настройки - Автозапускаемые приложения в Ubuntu 10.04 LTS - не уверен, где эквивалент в 11.10).
Например, для запуска inosync
утилиты при загрузке я добавил запись в «Автозагрузка приложений» с
Name=inosync
Command=/home/toaster/inosync.sh
Comment=Mirror DataDisk to Barracuda_01
Файл скрипта bash inosync.sh
должен быть включен для выполнения. Это можно сделать с помощью sudo nautilus
Терминала, перейдя к файлу, щелкнув правой кнопкой мыши и выбрав Свойства, перейдя на вкладку Разрешения и отметив «Разрешить выполнение файла как программы».