Como executar automaticamente um script de shell ao fazer login no Ubuntu


15

Como faço para que um script seja executado automaticamente quando faço login? Não quando a máquina é inicializada e não para todos os usuários, mas apenas quando eu (ou qualquer usuário específico com o script) efetuo login através da interface do usuário do GNOME.

De ler em outro lugar, pensei que estava .bash_profileno meu diretório pessoal, mas para mim não tem efeito. Quando eu o executo manualmente em uma janela de terminal, digitando ~/.bash_profileele funciona, mas ele não será executado automaticamente quando eu fizer login.

Estou executando o Ubuntu 11.04. A permissão de arquivo no meu .bash_profile é -rwx------. Nenhum .bash_profile existia no meu diretório pessoal antes de eu o criar hoje.

Parece que me lembro de versões anteriores do Linux com um .profilearquivo para cada usuário, mas isso também não funciona.

Como isso é feito? Preciso configurar outra coisa para que o .bash_profile funcione? Ou o script de login por usuário precisa estar em outro arquivo?


.bash_profile, .profile e .bashrc (que é realmente o usado pelo ubuntu) são carregados toda vez que você abre um terminal bash. Então, na verdade, não tenho certeza de que eles serão carregados se você fizer login no GDM.
Juan Sebastian Totero

A publicação da sua versão do Ubuntu pode ajudar. No Ubuntu 10.10 .bashrc "funciona para mim (TM)".
Vlueboy

Você quer dizer quando faz login na GUI ou no shell?
Flimzy

o bash os carrega quando você inicia um novo shell, portanto eles só serão carregados quando você abrir uma janela do terminal ou fizer login em um terminal virtual, não quando você fizer login no Gnome (GDM).
shiftycow

Estou usando o Ubuntu 11.04, como mencionei na pergunta original.
Mike Rowave

Respostas:


11

Você pode simplesmente adicionar o seguinte comando em Sistema> Preferências> Aplicativos de Inicialização:

bash /full/path/to/your/script.sh

Isso deve fazer o truque;)


Sabe, eu fiz isso antes e não funcionou ... exceto que não escrevi "bash" antes do caminho do script! Vou tentar com o bash mais tarde. Por curiosidade, quando você insere algo via GUI nos aplicativos de inicialização, em qual arquivo ele está registrado?
Mike Rowave

Programas de inicialização deve ser registrado em/etc/xdg/autostart
shiftycow

Adicionando bash /home/myusername/scriptname"Aplicativos de inicialização" funcionou! Obrigado. No entanto, isso pode ser específico para o GNOME no Ubuntu, é por isso que eu estava pensando sobre onde as entradas no item de menu "Aplicativos de Inicialização" são registradas, pois seria mais provável que seja semelhante em outras versões modernas do Linux.
Mike Rowave

2
/etc/xdg/autostartparece ser um arquivo de todo o sistema, não específico para um usuário.
Mike Rowave

Para versões posteriores do ubuntu, consulte askubuntu.com/questions/159887/…
TooTone

8

Então, basicamente, como sugeriu o nodiscc , crie um iniciador de área de trabalho: ~ / .config / autostart / script.desktop com o seguinte conteúdo:

[Desktop Entry]
Type=Application
Name=Autostart Script
Exec=autostart
Icon=system-run
X-GNOME-Autostart-enabled=true

Em seguida, crie o script de inicialização automática: ~ / bin / autostart com o seu conteúdo do bash:

#!/bin/bash
# Execute bash script below

Certifique-se de que ~ / bin / autostart seja executável


5

Você pode adicionar uma linha no crontab -

crontab -e

Em seguida, adicione esta linha ao arquivo que se abre:

@reboot /path/to/your/cool/script

Isso executará o script na reinicialização. Para mais detalhes, consulteman crontab


Eu não sei porque, mas eu não pode executar .sh arquivos em "Start Up aplicações", portanto, o caminho easyest para fazê-lo agora, é cron
Albert Català


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.