Como registrar o script de desligamento no Amazon Linux no AWS EC2

3

Estou usando o Amazon Linux (distribuição baseada em RH) no AWS EC2.

Eu segui a estrutura de /usr/share/doc/initscripts-*/sysvinitfiles para criar um script de inicialização em /etc/init.d .

/etc/init.d/do_something

#!/bin/sh

# chkconfig: 3 90 10
# description: Description of the script

start () {
  echo -n "Doing something..." >> /opt/started.log
  RETVAL=$?
  echo
  [ $RETVAL = 0 ] && touch /var/lock/subsys/do_something
  return $RETVAL
}

stop () {
  echo -n "Stopping doing something..." >> /opt/stopped.log
  RETVAL=$?
  echo
  [ $RETVAL = 0 ] && rm -rf  /var/lock/subsys/do_something
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
    ;;
esac
exit $?

Eu posso registrá-lo com o chkconfig, fazendo chkconfig --add do_something . Isso cria um symlink S em /etc/rc3.d . No entanto, nenhum symlink K é criado. Se eu criar manualmente o link simbólico e desligar ou reiniciar a instância, o script do sistema será executado conforme o esperado.

O que estou fazendo de errado e como posso obter o symlink K para ser gerado (para que eu não precise criá-lo manualmente)?

    
por vovel 05.06.2014 / 21:02

1 resposta

0

Eu não sou um especialista quando se trata de scripts SysVinit. Mas pelo que eu posso dizer, se você especificar que um script deve ser iniciado em apenas um runlevel (por exemplo, runlevel 3), você terá S symlinks em /etc/rc3.d , e K symlinks em todos os outros% diretórios/etc/rcX.d.

Provavelmente, seu script é sendo chamado com stop no desligamento; o link simbólico K não está localizado onde você esperava.

    
por 27.12.2014 / 06:32