Amazon Linux EC2 de CloudFormation – service d'arrêt

Je gère un service mythe sur une création Amazon EC2 à partir d'un script CloudFormation.
Je place le file de service dans /etc/rc.d/init.d/myService . (incluant les fonctions "start" et "stop").
Je l'ai également lié comme suit:
/etc/rc.d/rc0.d/K00myService -> /etc/rc.d/init.d/myService
/etc/rc.d/rc6.d/K00myService -> /etc/rc.d/init.d/myService

Mais, lorsque je supprime la stack CloudFormation et que l'EC2 descend, le service "stop" n'est jamais appelé.

La version linux:

 ~> cat /etc/*-release NAME="Amazon Linux AMI" VERSION="2015.03" ID="amzn" ID_LIKE="rhel fedora" VERSION_ID="2015.03" PRETTY_NAME="Amazon Linux AMI 2015.03" ANSI_COLOR="0;33" CPE_NAME="cpe:/o:amazon:linux:2015.03:ga" HOME_URL="http://aws.amazon.com/amazon-linux-ami/" Amazon Linux AMI release 2015.03 

Qu'est-ce qui me manque?

Votre script d'initialisation crée-t-il un file de locking /var/lock/subsys/<service> lors du démarrage? Si ce n'est pas le cas, le process d'arrêt supposera que le sous-système ne fonctionne pas et ne tentera pas d'arrêter le service.

Si c'est le problème, vous devez modifier vos scripts de démarrage et d'arrêt afin que le script de démarrage crée le file de locking lors du démarrage (p. Ex. En exécutant touch /var/lock/subsys/<service> ) et le script d'arrêt supprime le verrou file à l'arrêt.

Sources:

  • Pourquoi CentOS n'arrête pas votre script d'init
  • Exécuter le script avant ec2-terminate