来自CloudFormation的Amazon linux EC2 – 停止服务

我正在使用CloudFormation脚本创buildAmazon EC2上的服务。
我把服务文件放在/etc/rc.d/init.d/myService 。 (包括“开始”和“停止”function)。
我也是这样链接的:
/etc/rc.d/rc0.d/K00myService – > /etc/rc.d/init.d/myService
/etc/rc.d/rc6.d/K00myService – > /etc/rc.d/init.d/myService

但是,当我删除CloudFormation堆栈并且EC2停止时,“停止”服务从不被调用。

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 

我错过了什么?

您的init脚本在启动时是否创build了一个锁文件/var/lock/subsys/<service> ? 如果没有,关机过程将假定子系统没有运行,并且不会尝试停止服务。

如果这是问题,则需要修改启动脚本和停止脚本,以便启动脚本在启动时创buildlocking文件(例如,通过运行touch /var/lock/subsys/<service> ),停止脚本删除locking文件closures。

资料来源:

  • 为什么CentOS不会停止你的init脚本
  • 在ec2-terminate之前运行脚本