Cronjob - Script não está sendo executado na reinicialização

0

Eu preciso executar um script, myscript.sh , a cada reinicialização. Depois que crontab -e eu escrevi:

@reboot /home/techy/Documents/myscript.sh

O arquivo é executável após chmod 777 myscript.sh , mas não consigo obter saída do script de shell.

Meu script de shell deve alterar o plano de fundo da área de trabalho e está funcionando se executado a partir do terminal.

    
por techy 21.12.2016 / 23:07

4 respostas

1

Você não pode fazer isso com @reboot , (ou mesmo cron ). Quando o script @reboot é executado, você não efetuou login ( myscript.sh é executado como root ), o X Server não foi iniciado eo plano de fundo que você deseja alterar nem existe.

Sugiro usar ~/.config/autostart/ . Os arquivos lá são .desktop arquivos, veja man desktop-file-validate , man desktop-file-edit , man desktop-file-install , .... Já que os arquivos dos meus ícones ~/.config/autostart/ colocam na parte superior da minha tela, acho que é o contexto / hora certa para "alterar o plano de fundo da área de trabalho".

    
por waltinator 22.12.2016 / 00:33
0

Você quer executar seu script no logon , não na inicialização.
como mencionado, uma boa maneira é colocar um iniciador (arquivo .desktop) na pasta de inicialização automática
~/.config/autostart/

Mais informações sobre o Gnome Autostart:
Especificação de início automático do aplicativo de área de trabalho

-1- Cria o lançador:
Copie / cole essas linhas em um terminal

tee -a  ~/.config/autostart/myscript.desktop << END1
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec='/home/techy/Documents/myscript.sh'
Name=myscript
END1
chmod +x ~/.config/autostart/myscript.desktop

-2- Inicie o iniciador pela primeira vez , ele pedirá para você validar Navegue com o gerenciador de arquivos para ~ / .config / autostart /
Clique duas vezes no novo arquivo criado myscript.desktop
Validar o pop-up da mensagem de segurança

-3- Concluído, testá-lo
Efetue logoff e efetue login novamente para vê-lo funcionando

    
por cmak.fr 14.06.2018 / 08:02
-1

Eu tentaria isso em vez disso.

@reboot sleep 45 && sh /home/techy/Documents/myscript.sh

Isso dá algum tempo para o seu boot, e o sh realmente chama o shell script. Pode ser necessário executar chmod -x /home/techy/Documents/myscript.sh , isso retira as restrições do script e do caminho.

    
por Sabastion Manney 07.04.2018 / 00:04
-1

Eu tenho me deparado com esse problema a cada inicialização. O Ubuntu não estava carregando totalmente dois drivers no meu pc. Eu tive que clicar sobre eles no Nautilus para realmente carregar os drivers. Notei que ao executar Transmission na inicialização usando esses drivers como um destino para arquivos torrent e não estava funcionando.

Então eu tive que fazer esta mágica crontab e percebi que os dois comandos abaixo são realmente muito diferentes:

crontab -e

sudo crontab -e

Como eu tive que usar as credenciais do usuário root para carregar os drivers apenas a segunda opção funcionou para mim e dentro do arquivo crontab eu poderia escrever

@reboot /folder/loadhd.sh

Verifique isso: link

    
por Valmor Nascimento 13.06.2018 / 23:44