Execute o shell script na inicialização ou na inicialização

7

Meu problema em poucas palavras é que eu tenho que executar um script toda vez que eu uso meu computador, então estou tentando automatizar um pouco o processo.

Meu sistema tem a placa nvidia gt540m vga. O cartão é duplo. Ele tem uma placa de ponta para tarefas exigentes e usa a placa de baixo custo para todo o resto.

O Ubuntu neste momento não suporta este tipo de cartão vga, e alimenta os dois a todo o momento, quando utiliza apenas o onboard.

Isso resulta em um tempo de vida útil muito baixo da bateria.

Eu sou bastante novo no Ubuntu, então eu tive que seguir uma tonelada de tutoriais antes de realmente encontrar um script para resolver o problema.

Eu baixei uma pasta acpi_call para o diretório / home / anpel, e com os seguintes comandos, eu mato a placa:

cd /acpi_call
sudo insmod acpi_call.ko
sudo ./test_off.sh

O próximo passo, já que eu tinha que executar manualmente os comandos toda vez que eu inicializava, era fazer um script de shell na minha área de trabalho, o que eu corria, me pedia a senha e depois de fornecê-la, cartão. O script é assim:

cd ~/acpi_call
sudo insmod acpi_call.ko
sudo ./test_off.sh
echo VGA card dead
exit

Agora, estou tentando fazer com que meu sistema execute esse script sempre que meu computador inicializar, por isso não preciso fazê-lo manualmente todas as vezes.

Eu não tenho a experiência de mudar nada para o meu sistema sem pelo menos alguma orientação, porque eu acho que é muito provável que eu estrague tudo, e eu não tenho ideia de como limpar a minha bagunça, então eu não tenho Eu realmente tentei qualquer coisa, mas estou lendo que adicionar meu script ao arquivo /etc/rc.local fará o trabalho.

Isso é verdade ou há algo mais que eu tenha que tentar?

---- EDITAR -----

Eu uso o Ubuntu 11.10, desculpe por não mencionar isso.

    
por ppp 29.02.2012 / 11:21

2 respostas

3

Você pode executar seu arquivo de script como um Aplicativo de Inicialização (Sistema - Preferências - Aplicativos de Inicialização no Ubuntu 10.04 LTS - sem ter certeza de onde o equivalente está em 11.10).

Por exemplo, para executar o utilitário inosync na inicialização, adicionei uma entrada em Aplicativos de inicialização com

Name=inosync
Command=/home/toaster/inosync.sh
Comment=Mirror DataDisk to Barracuda_01 

O arquivo de script bash inosync.sh deve estar ativado para ser executado. Isso pode ser obtido usando sudo nautilus no Terminal, navegando até o arquivo, clicando com o botão direito e selecionando Propriedades, indo para a guia Permissões e marcando "Permitir a execução do arquivo como um programa".

    
por CentaurusA 29.02.2012 / 15:23
9

O local correto para os scripts que devem ser executados na inicialização é chamar o script de /etc/rc.local

Os comentários no arquivo resumem:

#!/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.
    
por Richard Holloway 29.02.2012 / 13:43