Existem 2 lugares que eu uso quando preciso adicionar comandos "run-once":
Uma vez em cada login de usuário (seja Graphical / GDM ou login de texto / console): ~/.profile
Prós:
- Funciona mesmo se nenhum servidor GDM / X11 / Graphical for usado. O que significa que funcionará com logins de SSH e modo de texto
- NÃO é avaliado quando um terminal gnome é iniciado, conforme necessário. SOMENTE no login
- Executado com privilégios de usuário, é seguro e permite acesso total a scripts pessoais.
- Executar depois que todas as montagens estiverem concluídas, de modo que todo o sistema de arquivos esteja disponível.
Contras:
- Se um usuário efetuar login, efetuar logout e efetuar login novamente, ele será executado novamente, uma vez por login. Portanto, não é um "verdadeiro" sistema inicial apenas . Mas pode atender a sua necessidade.
- Como isso é executado mesmo em logins em modo de texto, é recomendável NÃO colocar qualquer comando que exija um servidor GDM / X11 (como o daemon de sinergia)
- O Bash é usado apenas com logins no modo de texto. Então, se você estiver usando o GDM, nenhum bashismo será aceito no script, já que o Ubuntu o executará com
dash
Uma vez que o GDM inicia (antes de qualquer usuário fazer login): /etc/gdm/Init/Default
Prós:
- Executado apenas uma vez, independentemente de quantos usuários fazem login ou logout
- Pode ser usado para comandos gráficos e de texto
- Executar depois que todas as montagens estiverem concluídas, de modo que todo o sistema de arquivos esteja disponível.
Contras:
- Executar usando
gdm
user. Portanto, os scripts pessoais e o caminho para eles devem ser legíveis e executáveis em todo o mundo - Não pode ser usado se nenhum servidor GDM for usado (duh). Por isso não vai ser executado em start-ups em modo texto
- Novamente, não corra no bash, então os bashisms devem ser evitados.
Use o método que atenda às suas necessidades.