Amazon ec2 在EC2实例启动时运行二进制文件

Amazon ec2 在EC2实例启动时运行二进制文件,amazon-ec2,Amazon Ec2,我正在尝试在ec2实例上运行meilisearch,但是在让它自动启动时遇到了很多麻烦,我想知道是否有人能够提供帮助 我的当前用户数据如下所示,但我没有设置env变量,然后进程开始侦听另一个端口。是否有其他方法在ec2启动脚本中设置env变量?还是我做错了什么 #!/bin/bash export MEILI_HTTP_ADDR="0.0.0.0:80" curl -L https://install.meilisearch.com | sh # Write systemd unit fi

我正在尝试在ec2实例上运行meilisearch,但是在让它自动启动时遇到了很多麻烦,我想知道是否有人能够提供帮助

我的当前用户数据如下所示,但我没有设置env变量,然后进程开始侦听另一个端口。是否有其他方法在ec2启动脚本中设置env变量?还是我做错了什么

#!/bin/bash
export MEILI_HTTP_ADDR="0.0.0.0:80"

curl -L https://install.meilisearch.com | sh

# Write systemd unit file
cat << EOF > /etc/systemd/system/meilisearch@ecs-agent.service
[Unit]
Description=Meilisearch Service %I

[Service]
Restart=always
ExecStart=/meilisearch

[Install]
WantedBy=default.target
EOF

systemctl enable meilisearch@ecs-agent.service
systemctl start meilisearch@ecs-agent.service
#/bin/bash
导出美丽HTTP\u ADDR=“0.0.0.0:80”
旋度-Lhttps://install.meilisearch.com |嘘
#写入系统单位文件
cat/etc/systemd/system/meilisearch@ecs-代理服务
[单位]
Description=Meilisearch服务%I
[服务]
重新启动=始终
ExecStart=/meilisearch
[安装]
WantedBy=default.target
EOF
systemctl启用meilisearch@ecs-代理服务
系统控制启动meilisearch@ecs-代理服务

我认为您在脚本第2行导出的env变量没有被Systemd使用

相反,您应该在服务文件中提供env变量,如下所示:

[Service]
Restart=always
ExecStart=/meilisearch
Environment=MEILI_HTTP_ADDR=0.0.0.0:80

如果这能解决您的问题,请告诉我:)

是的,这正是我所缺少的,非常感谢!