Como executar um comando do sistema um minuto após a reinicialização (Linux)?

1

É possível executar um comando do sistema como mount por um determinado período de tempo após a reinicialização do sistema?

Meu problema é que eu tinha uma entrada em /etc/fstab para montar um disco host em uma máquina virtual Linux (Ubuntu). Uma montagem direta não funcionaria devido a alguns problemas de tempo no carregamento de módulos do kernel. Então usei uma opção noauto em fstab e adicionei uma linha em /etc/rc.local a mount /some_disk .

Isso funcionou para o Ubuntu (12.04 e 14.04), mas agora mudei para o Lubuntu. E o acima não funciona mais. Eu acho que é provavelmente porque Lubuntu é reiniciado muito mais rápido, e rc.local é executado cedo. BTW, verifiquei que outros comandos em rc.local executam bem. E mount /some_disk funciona quando sudo após o sistema estar ativo.

Então, pergunto-me como adiar mount /some_disk em um script como rc.local , digamos 1 minuto após a reinicialização?

Nota: eu posso fazer

sudo mount /some_disk

com sucesso segundos após a reinicialização (a GUI está ativa).

    
por tinlyx 23.10.2014 / 17:15

3 respostas

1

Sim, é possível. basta criar um script de inicialização e colocá-lo em /etc/init.d/ .

Em seguida, registre o script com os diferentes runlevels. através do seguinte comando:

update-rc.d <scriptname> defaults 99 01 

O 99 significa que é chamado no final do processo de inicialização.

Scripts de daemon sofisticados parecem com /etc/init.d/skeleton .

No entanto, como seu script não deve ser um daemon, o seguinte script deve funcionar.

#!/bin/sh

case "$1" in
  start)

    sleep 60
    # your code

    ;;
esac

quit 0
    
por 23.10.2014 / 18:13
2

A resposta do @D Schlachter é uma boa idéia, mas falta no ponto do comando necessário para ser executado como root. No entanto, você pode usar o crontab em todo o sistema em / etc / crontab ou o crontab da raiz,

sudo crontab -e

Por favor, note a diferença de sintaxe entre esses arquivos, uma vez que o crontab de todo o sistema precisa de uma coluna extra para o usuário, o comando será executado como.

@reboot root sleep 60; mount /some_disk
    
por 18.05.2015 / 13:55
1

Você pode usar cron . Adicione esta linha ao seu crontab ( crontab -e ):

@reboot sleep 60 ; mount /some_disk

[1] [2]

    
por 23.10.2014 / 17:30