我正在 Amazon EC2 上运行由 CloudFormation 脚本创建的服务。
我将服务文件放入/etc/rc.d/init.d/myService
. 中(包括“启动”和“停止”函数)。
我还像这样链接了它:
/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
我错过了什么?
答案1
您的 init 脚本在启动时是否创建了锁定文件/var/lock/subsys/<service>
?如果没有,则关闭过程将假定子系统未运行,并且不会尝试停止该服务。
如果是这个问题,您需要修改启动和停止脚本,以便启动脚本在启动时创建锁定文件(例如通过运行touch /var/lock/subsys/<service>
),并且停止脚本在关闭时删除锁定文件。
资料来源: