Como executar o shell script em background ao iniciar no CentOS? [duplicado]

1

Eu tenho um script de shell contendo loop como este:

while true
do
  if ... ; then
    ...
  else
    ...
    break
  fi
done

Eu quero que este script seja executado quando o sistema operacional for iniciado. Eu tentei adicionar este script em /etc/rc.d/local.rc como script de inicialização. Mas o sistema operacional é iniciado por muito tempo e, após a inicialização do sistema operacional, esse script não existia.

Então, como adicionar esse script ao back-end enquanto o sistema operacional é inicializado? E eu preciso deste script também pode ser iniciado manualmente no backend. Obrigado ~

    
por user259336 07.11.2017 / 07:06

2 respostas

3

Para executar um script na inicialização, você deve iniciá-lo de

/etc/cron.d/myrebootscript

com o conteúdo

@reboot <user> <command>

exemplo:

@reboot joe /usr/local/bin/myscript

O script será executado em um horário imprevisível durante a inicialização. Se, por exemplo, o script deve esperar que a rede seja iniciada, um loop deve ser adicionado ao /usr/local/bin/myscript :

#! /bin/bash
# wait for 10.1.2.3 is pong'ing
while ! ping -c1 -W1 10.1.2.3 > /dev/null ; do
  sleep 1
done
do_my_command_here

/etc/rc.local está obsoleto nos dias de hoje.

    
por 07.11.2017 / 08:35
0

Inclua o script no arquivo /etc/rc.d/rc.local para que ele seja executado assim que todos os scripts init forem executados.

Outra opção podemos adicionar caminho no .bash_profile

    
por 07.11.2017 / 09:36

Tags