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

8

Eu tenho alguns elogios que desejo que sejam chamados logo após o login, incluindo 'startx', e achei que rc.local parece um bom lugar para eles, mas o problema é que rc.local é executado como root e eu não quero que, obviamente, eu possa fazer algo assim:

su username -c somecommend-here

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

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

Obrigado

    
por omeid 07.10.2011 / 07:31

3 respostas

6

A maneira mais fácil de iniciar um comando quando um usuário efetua login é criar um arquivo .desktop para o comando e colocá-lo na pasta ~/.config/autostart . Como é o arquivo da área de trabalho? Aqui está um exemplo que recupera a página inicial do Ask Debian com wget toda vez que o usuário efetua login:

[Desktop Entry] 
Name=Launch wget
Comment=Fetches the Ask Ubuntu home page.
Exec=wget http://askubuntu.com/
    
por Nathan Osman 07.10.2011 / 07:39
1

Eu 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 o serviço a ser executado.

    
por Stephen Niedzielski 16.02.2012 / 21:24
0

A maneira linux é anexar seus comandos a ~/.bashrc em vez de /etc/rc.local .

Todo usuário tem um .bashrc em seu diretório inicial. Este arquivo de script é executado automaticamente logo após o login do usuário. Ele é executado com as credenciais do usuário, portanto, um comando su não é necessário.

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

    
por thom 03.03.2013 / 18:52

Tags