Como executar o rc.local como usuário normal?


8

Eu tenho alguns elogios que gostaria de ser chamado logo após o login, incluindo 'startx', e achei rc.localum bom lugar para eles, mas o problema é que ele rc.localé executado como root e não quero isso, obviamente posso fazer algo assim:

su username -c somecommend-here

Mas estou procurando uma maneira de executar todo o 'rc.local' como usuário normal, ou talvez haja um lugar melhor para colocar meu código?

PS. Estou usando o Ubuntu-mini-remix 1104i386

obrigado


O AFAIK rc.local é executado paralelamente ao login no final da sequência de inicialização. Quero dizer, ele será executado mesmo que você não faça login, mas você pode estar logado e pode estar com uma execução pendente.
21311 Javier Rivera #

@JavierRivera Então, qual seria a solução?
Omeid 8/10

Respostas:


6

A maneira mais fácil de iniciar um comando quando um usuário efetua login é criar um .desktoparquivo para o comando e colá-lo na ~/.config/autostartpasta. Como é o arquivo da área de trabalho? Aqui está um exemplo que recupera a home page do Ask Ubuntu wgettoda vez que o usuário faz login:

[Desktop Entry] 
Name=Launch wget
Comment=Fetches the Ask Ubuntu home page.
Exec=wget http://askubuntu.com/

Não parece uma boa ideia iniciar startx(como o OP pediu) após o login gráfico.
enzotib 7/10/11

@enzotib: Não há menção a um login gráfico.
Nathan Osman

Talvez eu não entendi a pergunta, eu acreditava que o usuário teria que começar startxa partir rc.local. Desculpe
enzotib

1

Não sei as diferenças entre /etc/rc.local e um crontab, mas geralmente faço uma conta de serviço e adiciono o trabalho apropriado. Por exemplo: sudo crontab -u p4padmin -e

@reboot ~/bin/p4p -d -r ~/var/p4p/cache/foo -p 2020 -t depot:2020 -L ~/var/p4p/log/foo.log

Você não precisa fazer login para que o serviço seja executado.


0

A maneira linux é anexar seus comandos ao ~/.bashrcinvés de /etc/rc.local.

Todo usuário tem um .bashrcdiretório inicial. Esse arquivo de script é executado automaticamente logo após o usuário efetuar login. Ele é executado com as credenciais do usuário, portanto, um sucomando não é necessário.

Parece-me que é exatamente isso que você está procurando.


Isso não está correto, pois .bashrcnão é lido quando um usuário efetua login usando o normal lightdm, por exemplo.

Concluí muito rápido que o usuário estava usando um login de comando, em vez de um gerente por causa da "manual" de comando startx ele mencionou exibição .... meu mau :-)
Thom
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.