gpt4 book ai didi

ruby - 运行 bundle exec 时,如何让 bundler 在 "ps aux"中显示完整的命令?

转载 作者:行者123 更新时间:2023-12-04 18:57:40 26 4
gpt4 key购买 nike

我有几个需要在后台运行的 rake 任务。我正在使用 rbenv管理我的 ruby​​ 版本,supervisord运行任务,bundle确保我使用正确的 gems 版本。我的每个任务的 supervisord 配置如下所示:

[program:data-importer]
command=/home/ubuntu/.rbenv/bin/rbenv exec bundle exec rake import:data
environment=RAILS_ENV=production,PATH=/home/ubuntu/.rbenv/shims:%(ENV_PATH)s,PRODUCTION=true
directory=/home/ubuntu/app/current
user=ubuntu
stdout_logfile=/var/log/app/%(program_name)s-out.log
stderr_logfile=/var/log/app/%(program_name)s-err.log
autostart=true

我也在使用 consul监控我的基础设施,我正在使用 consul 检查以确保这些脚本正在运行。检查调用一个非常简单的 bash 脚本,如下所示:
#!/bin/bash

if ps -ef | grep [i]mport:data | grep -v running; then
echo "data importer running"
exit 0
else
echo "data importer not running"
exit 2
fi

这些脚本一直运行良好,直到几天前这些检查开始失败。问题是当我运行 ps -ef ,列出的进程不包含 import:data了。它现在显示了这一点:
ubuntu 30450 ... /home/ubuntu/.rbenv/versions/2.3.1/bin/rake

机器上没有真正改变,只有 Ruby 版本。我们用的是2.2.2,上周五我们升级到了2.3.1。这就是为什么我认为这是一个 bundle 程序问题,因为我们在 ruby​​ 升级后安装了更新的版本。

直到周日我们才发现问题,但可能是我们之前没有发现。

谁能帮我这个?我已经被困了一段时间了:(

最佳答案

要在 ps -ef 中获得所需的输出,您必须在 rake 调用周围加上引号:

bundle exec 'rake import:data'

关于ruby - 运行 bundle exec 时,如何让 bundler 在 "ps aux"中显示完整的命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38335155/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com