No sistema desktop Linux, desejo executar um comando quando o usuário efetuar login.
Depois de ler algumas outras postagens, tentei inserir o comando ~/.bashrc
sem êxito. Além disso, o sistema utiliza uma interface gráfica para o login do usuário, portanto, o comando não deve estar relacionado ao início de um shell.
Também tentei anexar o comando a um dos scripts contidos /etc/profile.d
sem resultados.
Há outra maneira de fazer isso? Algum arquivo que o sistema lê após o login?
Respostas:
Não há garantia de que o gerenciador de exibição gráfica leia os arquivos de inicialização clássicos. Isso muda entre distribuições e entre gerenciadores de exibição. Um dos seguintes procedimentos deve funcionar.
Use o método nativo do seu ambiente de área de trabalho para definir aplicativos de inicialização. Os detalhes dependerão do DE que você está usando, mas você pode criar um script que execute seu comando e adicioná-lo à lista de aplicativos de inicialização. Por exemplo, no meu sistema (Cinnamon), você pode fazer isso em "Configurações do sistema" => "Aplicativos de inicialização".
Use
~/.xprofile
, isso é originado pelo menos pelos gerenciadores de login GDM, LDM, LightDM e LXDM.Se nenhuma das opções acima funcionar, tente adicionar o comando a
~/.profile
: Este é o principal arquivo de inicialização dos shells de login e também é lido por alguns shells gráficos no login.Como @derobert apontou nos comentários, você também pode usar os padrões de desktop gratuito :
O
~/.bashrc
é completamente irrelevante aqui, ele só é lido por conchas não-login interativo, por isso é ignorado em shells de login, gráfica ou não.fonte
~/.config/autostart
e/etc/xdg/autostart/
quais são os locais padrão de acordo com a Especificação de inicialização automática do aplicativo de desktop . E também/etc/X11/Xsession.d
e~/.xsession
.Outra opção é usar o pam - isso lhe dará uma maneira precisa de definir ações no login.
Para uma ação genérica, você pode confiar no pam_exec ( http://manpages.ubuntu.com/manpages/hardy/man8/pam_exec.8.html ). No entanto, se você precisar executar uma ação mais específica de uma maneira segura, pode haver módulos pam mais especializados que se ajustem melhor, como o pam_mount comumente usado (para montagens no login - http: //manpages.ubuntu. com / manpages / hardy / man8 / pam_mount.8.html ) ou pam_echo (para mensagens arbitrárias para os usuários - http://manpages.ubuntu.com/manpages/hardy/man8/pam_echo.8.html ).
Em geral, o pam é um sistema muito elegante para personalizar logins; portanto, você deve procurar um pouco mais, em vez de confiar em scripts potencialmente inseguros, como outros sugeriram.
Exemplo
Dado um /etc/pam.d/system-auth bastante típico, podemos empregar pam_exec após o login como este:
onde o
/usr/local/bin/my_prog
programa arbitrário está sendo executado após um login de usuário bem-sucedido.fonte
pam
configuração, pois isso não é trivial.De acordo com este tópico: Executar comando automaticamente após o login?
Você tem a solução
.bashrc
(não é o que você precisa) e a solução dos aplicativos de inicialização. Cito Daniel S .:fonte