Como posso executar um comando na inicialização do servidor Ubuntu não como root?

0

Ocasionalmente (é muito raro) meu provedor de VPS precisa reiniciar meu VPS para corrigir problemas ou aplicar um patch. Existe alguma maneira de executar comandos como meu usuário automaticamente uma vez que o VPS reinicia? Eu li sobre colocar scripts em /etc/rc.local mas meu entendimento é que esses scripts serão executados como root. Em particular, gostaria de executar os seguintes comandos:

screen -U -S Irssi irssi
screen -S rtorrent rtorrent

Dessa forma, o Irssi se reconectará automaticamente aos seus servidores de IRC e o rtorrent começará a ser propagado novamente, para que eles não precisem esperar que eu veja o e-mail do meu provedor de VPS, faça o login e reinicie-os manualmente. Qualquer conselho seria muito apreciado!

    
por Ethan 20.12.2014 / 15:39

1 resposta

0

Veja /etc/crontab

Você pode configurá-lo para iniciar algo com um "usuário" e ter opções

string         meaning
------         -------
@reboot        Run once, at startup.
@yearly        Run once a year, "0 0 1 1 *".
@annually      (same as @yearly)
@monthly       Run once a month, "0 0 1 * *".
@weekly        Run once a week, "0 0 * * 0".
@daily         Run once a day, "0 0 * * *".
@midnight      (same as @daily)
@hourly        Run once an hour, "0 * * * *".

Padrão em qualquer máquina Ubuntu:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the 'crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

Então basicamente você quer algo como:

@reboot {your_user} {your_script}
    
por Rinzwind 20.12.2014 / 16:24