【问题标题】:Adding a service startup script for Amazon linux AMI为 Amazon linux AMI 添加服务启动脚本
【发布时间】:2012-01-13 09:16:36
【问题描述】:

我正在使用 Amazon Linux AMI 并对其进行一些自定义修改(添加了 axis2server 等)并将其保存为新的 AMI。现在我要做的是在 AMI 启动时启动axis2server(即,axis2server 应该在实例启动时自动启动)。为此,我使用了如下所示的初始化脚本并运行以下命令:

chkconfig --add axisservice

但是当我从我的图像启动一个新实例时,axis2server 没有启动。

我只需要在启动时执行脚本/home/ec2-user/axis2-1.6.1/bin/axis2server.sh。我在这里错过了什么吗?

#! /bin/sh
# Basic support for IRIX style chkconfig
###
# chkconfig: 235 98 55
# description: Manages the services you are controlling with the chkconfig command
###

case "$1" in
  start)
        echo -n "Starting axisservice"        
        touch ~/temp.txt
        cd /home/ec2-user/axis2-1.6.1/bin
        ./axis2server.sh &
        echo "."
        ;;
  stop)
        echo -n "Stopping axisservice"
        echo "."
        ;;

  *)
        echo "Usage: /sbin/service axisservice {start|stop}"
        exit 1
esac

exit 0

我也使用了https://help.ubuntu.com/community/CloudInit,它提供了一种称为用户数据脚本的机制,用户可以在启动脚本时执行脚本。

$ euca-run-instances --key mykey --user-data-file myscript.sh ami-axxxx

这是一个命令行选项,我想要的是当我通过 UI 启动实例时,应该启动脚本。因此,我认为在我的情况下不能使用上述选项。如果我错了,请纠正我。

谢谢, H.

【问题讨论】:

  • 只是为了检查最基本的内容,脚本是否具有在启动时运行的正确权限?您是否尝试过手动运行它?
  • 您找到解决方案了吗?当我的实例重新启动时,我还想运行一个 Redis 服务器和一个 node.js。 Amazon AMI 好像这里没有安装 update-rc.d。

标签: linux amazon-ec2 ec2-ami


【解决方案1】:

我敢打赌环境没有设置(正确设置)。这意味着我猜测您的 shell 脚本试图启动另一个程序并且找不到它。

所以,首先,我会调整脚本的 start 部分(当前):

echo -n "Starting axisservice"        
touch ~/temp.txt
cd /home/ec2-user/axis2-1.6.1/bin
./axis2server.sh &
echo "."

已编辑:

echo -n "Starting axisservice"        
touch ~/temp.txt
cd /home/ec2-user/axis2-1.6.1/bin
./axis2server.sh
RETVAL=$?
[ $RETVAL -eq 0 ] && echo Success
[ $RETVAL -ne 0 ] && echo Failure
echo "."

那我做了什么?

  • 删除了&,因此脚本等待您的 shell 脚本 (axis2server.sh) 完成
  • 检查了您的 shell 脚本的返回状态 ($?)

进一步调试:

set -x 添加到您的脚本以启用跟踪并记录stderrstdout

问题:

  1. 您知道stop(在您的服务脚本中)没有任何作用吗?
  2. touch ~/temp.txt 应该创建 /root/temp.txt 吗? (我猜测 root 运行这个脚本。)
  3. 如果我的建议都不起作用,你能分享axis2server.sh并粘贴stderrstdout吗?

【讨论】:

    猜你喜欢
    • 2014-10-08
    • 2022-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    相关资源
    最近更新 更多