~/.profile
, /.bash_profile
e /.bash_login
são melhores para definir as variáveis de ambiente e configurar o ambiente do que para executar scripts. Eu não recomendaria isso.
/etc/rc.local
pode ser usado para isso, mas lembre-se de que ele será iniciado antes que a GUI seja iniciada. A menos que seja por um script que envia apenas notificação para a GUI. Observe que você precisará chamar seu script em /etc/rc.local
no formato /full/path/to/script &
( &
para evitar o bloqueio de outros scripts que você possa ter na execução). Você também precisará da variável export DISPLAY=:0
no próprio script ou no /etc/rc.local
. Aplicativos que precisam de GUI precisarão dessa variável para existir. Mesma ideia com cron job using @reboot
.
Se você quiser executar scripts no login da GUI, a maneira correta é criar o arquivo .desktop
para cada script na sua pasta ~/.config/autostart/
. Você pode fazer isso manualmente ou usar o aplicativo Startup Applications que faz exatamente a mesma coisa para você. Basta abrir o Unity Dash e digitar "Startup Applications"
Visão geral dos seus exemplos
-
apt-get update
não precisa de GUI, apenas de rede./etc/rc.local
está ok para este. -
set some permissions
, isso não precisa de GUI, apenas use/etc/rc.local
-
set display brightness
não precisa de GUI também, mas pode precisar de privilégios de root. Se você quiser alterá-lo antes do login, será necessário gravar em um arquivo especial. Consulte meu outro post sobre esse assunto -
turn numlock on
pode não precisar da GUI, também -
setup touchpad
dependendo do seu método, pode ou não precisar de GUI -
run some apps
se forem aplicativos de interface gráfica, eles precisarão ser iniciados a partir dos aplicativos de inicialização descritos acima. -
run some scripts as root
você pode usar/etc/rc.local
oucron
para estes. Rodar aplicações GUI como root é uma má ideia por muitas razões, por isso evite isso. -
run some scripts without root
usa o método Startup Applications.