首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用distillery的edeliver :如何设置`start`命令以使用systemctl

使用distillery的edeliver :如何设置`start`命令以使用systemctl
EN

Stack Overflow用户
提问于 2017-08-11 00:09:01
回答 1查看 231关注 0票数 2

我正在使用由distillery支持的edeliver将Elixir项目部署到远程。

我还成功地创建了systemd.service文件,用于从命令行启动、停止、重新启动发行版等。

但是mix edeliver start production命令似乎绕过了systemd,通过普通的好的bin/my_app start外壳命令来运行。我想要的是始终使用systemd,即使是热上传,因为它(与upstart不同)确实提供了reload功能。

我找不到我该告诉谁使用systemd来重新启动版本。它应该是delivery策略吗?还有别的吗?我知道这个问题不适合这么做,但我只是迷路了。

那么:我可以强制distillery上的edeliver使用systemd来启动版本吗?如果是,是如何实现的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-11 19:40:49

FWIW,我会把它贴在这里。我用一个讨厌的杂乱无章的东西解决了这个问题。我有一个包含少量后续builddeployping命令的release.sh脚本。因此,我做了以下工作:

代码语言:javascript
复制
# mix edeliver restart production

for host in `cat .deliver/config | grep PRODUCTION_HOSTS | cut -d '=' -f 2 | sed -e 's/"//g'`
do
  echo "Restarting the remote [$host]..."
  echo `ssh rates-injector@$host sudo systemctl restart rates_injector.service`
done
echo "Likely restarted."

基本上,我手动为systemctl发出restart命令,从.deliver/config文件中获取生产主机列表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45618646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档