Como os "Aplicativos de inicialização" funcionam?

10

Estou interessado em saber como funcionam os "Aplicativos de inicialização", que você pode acessar a partir do dock.

Quero saber isso porque quero saber a diferença entre adicionar uma entrada nesses locais:

/etc/rc.local 
/etc/profile  
/home/$USER/.profile

e fazendo o mesmo através deste aplicativo GUI. O que me intriga é que não vejo o programa criando nenhuma entrada nos arquivos mencionados acima.

daltonfury42
fonte

Respostas:

8
  • /etc/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.
    

    Essencialmente, o nível de execução multiusuário significa quando você inicializa.

  • /etc/profile

    Este arquivo é chamado apenas para shells de logon, pois esse é seu objetivo específico.

    /etc/profile, executado por todos os shells compatíveis com Bourne (incluindo bashe dash) quando iniciado como um shell de logon.

  • /home/$USER/.profile

    # ~/.profile: executed by the command interpreter for login shells.
    # This file is not read by bash if ~/.bash_profile or ~/.bash_login
    # exists.
    

    Tanto o ~/.bashrce ~/.bash_profilesão scripts que podem ser executados quando o bash é invocado. O ~/.bashrcarquivo é executado quando você executa o bash usando um shell interativo que não é um shell de logon. O ~/.bash_profileúnico é executado durante um shell de logon.

    Fonte

    Então eu acho que .profileé executado se nenhum deles foi (por qualquer motivo).

  • Por fim, seu método GUI provavelmente está colocando .desktoplançadores em/home/$USER/.config/autostart

    Isso é executado no logon do usuário (apenas o login da GUI, eu acho - o startxfaria, mas não o ttylogin).

Meus pronomes são He / Him

Tim
fonte
Os comandos .profile não são executados no login da GUI?
daltonfury42
@ user3073656 hmmm como é chamado a aplicação GUI?
Tim
Desculpe, erro descuidado! Você estava certa.
daltonfury42
@ user3073656 editado
Tim
8

Qualquer ambiente de desktop que siga as especificações do freedesktop (também conhecido como XDG) deve usar aplicativos de inicialização automática no login do usuário ou sempre que uma mídia removível for inserida.

Para iniciar automaticamente um aplicativo no login do usuário, o ambiente da área de trabalho procura um .desktoparquivo para executar o aplicativo especificado lá. Esses .desktoparquivos geralmente estão localizados em

$XDG_CONFIG_DIRS/autostart

Mas também podemos tê-los nos seguintes locais:

~/.config/autostart/ ## if $XDG_CONFIG_HOME is not set
etc/xdg/autostart/ ## if $XDG_CONFIG_DIRS is not set

De qualquer forma, um .desktoparquivo localizado ~/.config/autostarté definido como o arquivo mais importante a ser executado, substituindo .desktoparquivos em outros locais.

O Ubuntu cumpre esta especificação e os usuários podem adicionar aplicativos com uma abordagem de GUI para "Autostart Applications".

O aplicativo pode ser iniciado automaticamente, independentemente da área de trabalho, de vários outros locais, como ~/.profilepara o shell, /etc/rc.localpara execução no início do sistema ou, mais recentemente, usando systemd .

Takkat
fonte
Adicionar os comandos dessa maneira é melhor, pois isso literalmente não leva tempo quando comparado ao arquivo .profile, onde adicionamos nossos comandos de inicialização. Eu testei esses dois no meu dell inspiron 7560 com o ubuntu 16.04 e desta maneira parece melhor.
Jasser
Eu também acho que isso é melhor do que editar o arquivo / etc / profile, pois é invocado apenas para shells de logon que são depois que o ambiente da área de trabalho é iniciado. Sim, testou isso também. Eu tinha razão.
Jasser