【问题标题】:Monit and /etc/environment监控和 /etc/environment
【发布时间】:2017-09-03 09:36:38
【问题描述】:

我在/etc/environment 中设置了RAILS_ENV='production' 变量和简单的bash 脚本

#!/bin/bash
printenv

在monit config中我检查这个脚本是否正在运行。(它仅用于测试目的,因为没有这样的进程,monit应该尝试启动它:

start program = "/home/deploy/www/laptophits/current/bin/importer")

我在监控日志中收到错误:

[UTC Sep  3 09:31:50] error    : 'importer' failed to start (exit status 0) -- /home/deploy/www/laptophits/current/bin/importer: MONIT_DATE=Sun, 03 Sep 2017 09:31:20
MONIT_HOST=localhost
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
LANG=en_US.UTF-8
MONIT_PROCESS_PID=-1
MONIT_EVENT=Started
MONIT_PROCESS_MEM

所以看起来这个 bash 脚本运行时只使用了一些简单的监控变量。如何让它与/etc/variables 和/或用户变量一起运行?

【问题讨论】:

    标签: bash monit


    【解决方案1】:

    要在 monit 中加载 /etc/environment 变量,您必须使用 source /etc/environment

    例如;

      start program = "/bin/bash -c 'source /etc/environment && cd /srv/<project>/current && /usr/local/rbenv/shims/bundle exec sidekiq -d -L log/sidekiq.log -C config/sidekiq.yml -e production'" as uid 1000 and gid 1000
    

    这将加载用户环境和 /etc/environment 文件。

    【讨论】:

      【解决方案2】:

      你可以运行你的命令:

      start program = "/bin/bash -c '/home/deploy/www/laptophits/current/bin/importer'" as uid **username** and gid **group**
      

      shell 将加载用户的环境。

      【讨论】:

        猜你喜欢
        • 2013-10-06
        • 2018-04-15
        • 2012-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多