背景
最近在银行遇到一个部署问题,uat、prod 两个环境的ECS中的服务要求制作好基础镜像,上环境的时候只需要在对应的ECS中选择更换系统即可,不允许传统连接SSH上去安装,这就要求我们就得提前把需要运行的服务内置到系统中,到时候启动服务器的时候就调用脚本运行服务。
方法一:修改 /etc/rc.d/rc.local 文件
echo "/home/alisvc/saxo/hugegraph/bin/start-hugegraph.start" >>/etc/rc.d/rc.local
然后重启ecs服务器,调用自己服务的接口能正常访问即可
方法二:使用 systemd 服务
任何 Linux 系统上都可以使用。但本方法仅适用于 systemd 系统。如何区分是不是 systemd 系统呢,执行下面的命令,查看是否有我红色框里面的内容
ps aux
此时我们需要创建一个 systemd 启动服务,并把它放置在 /etc/systemd/system/
目录下。
cd /etc/systemd/system/
vim auto_run_script_hugegraph.service
[Unit]
Description=Run start-hugegraph
After=default.target
[Service]
#需要启动的服务绝对路径
ExecStart=/home/alisvc/saxo/hugegraph/bin/start-hugegraph.sh
[Install]
WantedBy=default.target
使用systemctl 把auto_run_script_hugegraph.service加入到系统服务
systemctl enable auto_run_script_hugegraph.service
然后重启ecs服务器,调用自己服务的接口能正常访问即可,如果访问不通,需要使用systemctl status关命令查看自己服务的状态
启动:systemctl start auto_run_script_hugegraph.service
结束:systemctl stop auto_run_script_hugegraph.service
重启:systemctl restart auto_run_script_hugegraph.service
状态:systemctl status auto_run_script_hugegraph.service
查看服务状态: systemctl status auto_run_script_hugegraph.service