Запустить скрипт оболочки при запуске или загрузке

Запустить скрипт оболочки при запуске или загрузке

Если говорить вкратце, моя проблема заключается в том, что мне приходится запускать скрипт каждый раз, когда я использую компьютер, поэтому я пытаюсь немного автоматизировать этот процесс.

В моей системе установлена ​​карта 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Терминала, перейдя к файлу, щелкнув правой кнопкой мыши и выбрав Свойства, перейдя на вкладку Разрешения и отметив «Разрешить выполнение файла как программы».

Связанный контент