Se você deseja que a tarefa para executar no modo de usuário, você pode fazer o que eu fiz e preceder apenas sudo -u <user>antes da tarefa naanacrontab
Você pode configurar uma instância anacron separada para executar no modo de usuário:
Crie uma .anacronpasta no seu diretório pessoal e nele duas subpastas etce spool:
mkdir -p ~/.anacron/{etc,spool}
Crie um novo arquivo ~/.anacron/etc/anacrontabcom conteúdo semelhante ao seguinte:
# /etc/anacrontab: configuration file for anacron# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# period delay job-identifier command110 testjob test.sh
Adicione a seguinte linha ao seu crontab usando crontab -e:
Apenas para confirmar, isso executa o script especificado como usuário, então um whoamino script fornecerá o nome de usuário?
Christoph
hm, sim, em uma inspecção mais aprofundada, não vejo porque não ...
Christoph
3
Eu acho que você precisa executar anacronperiodicamente; parece correr uma vez e sair. O anacron do sistema é chamado uma vez a cada hora. Suponho que uma estratégia semelhante funcionaria aqui, ou seja, chame o usuário anacrondo usuário crontab.
Sparhawk
1
O @Sparhawk concordou, em particular o Ubuntu 15.10 anacron usa os dois /etc/apm/event.d/anacrone /etc/init/anacron.confcuida das reinicializações.
Ciro Santilli resolveu
1
Você precisa executar o anacron a cada hora com um trabalho cron, por exemplo01 * * * * /usr/sbin/anacron -t /home/user/.anacron/etc/anacrontab -S /home/user/.anacron/spool
Simon Woodside
0
Isso funcionou para mim (obrigado), mas não usei o último passo dado na resposta:
Em seguida, adicione a seguinte linha ao seu ~/.profile:
Estou usando o Ubuntu Studio 12.10 Quantal e, no meu caso, em vez da última etapa, coloquei o liner aqui: "Menu Aplicativos" → "Configurações" → "Gerenciador de configurações" e depois no Gerenciador de configurações em "Sessão e inicialização" e depois em Guia "Inicialização automática do aplicativo".
Isso é para aqueles que são usuários da GUI, porque ~/.profileé originada apenas pelo bash quando inicia um shell interativo de logon (mesmo que ~/bashrcnão seja tão útil, pois só é originada quando o bash inicia um shell interativo).
sudo -u <user>
antes da tarefa naanacrontab
Respostas:
Você pode configurar uma instância anacron separada para executar no modo de usuário:
Crie uma
.anacron
pasta no seu diretório pessoal e nele duas subpastasetc
espool
:Crie um novo arquivo
~/.anacron/etc/anacrontab
com conteúdo semelhante ao seguinte:Adicione a seguinte linha ao seu crontab usando
crontab -e
:fonte
whoami
no script fornecerá o nome de usuário?anacron
periodicamente; parece correr uma vez e sair. O anacron do sistema é chamado uma vez a cada hora. Suponho que uma estratégia semelhante funcionaria aqui, ou seja, chame o usuárioanacron
do usuáriocrontab
./etc/apm/event.d/anacron
e/etc/init/anacron.conf
cuida das reinicializações.01 * * * * /usr/sbin/anacron -t /home/user/.anacron/etc/anacrontab -S /home/user/.anacron/spool
Isso funcionou para mim (obrigado), mas não usei o último passo dado na resposta:
Estou usando o Ubuntu Studio 12.10 Quantal e, no meu caso, em vez da última etapa, coloquei o liner aqui: "Menu Aplicativos" → "Configurações" → "Gerenciador de configurações" e depois no Gerenciador de configurações em "Sessão e inicialização" e depois em Guia "Inicialização automática do aplicativo".
Isso é para aqueles que são usuários da GUI, porque
~/.profile
é originada apenas pelo bash quando inicia um shell interativo de logon (mesmo que~/bashrc
não seja tão útil, pois só é originada quando o bash inicia um shell interativo).fonte
.profile
sempre funcionou bem para mim (Ubuntu 12.04 aqui).