如何设置在 monit 中运行命令的用户遵守他的 .bash_profile?

如何设置在 monit 中运行命令的用户遵守他的 .bash_profile?

我想用 monit 监督在 unicorn 上运行的 Rails 应用程序。

以 root 身份登录时从 shell 运行以下两个命令将会失败:

  • "/srv/app/current/config/unicorn.sh start"
  • su -c "/srv/app/current/config/unicorn.sh start" app

起作用的是:

  • su -c "/srv/app/current/config/unicorn.sh start" - app

这并不令我惊讶,我正在使用萊本这需要$PATH我进行一些修改.bash_profile。不幸的是,我无法让它与 monit 一起工作。我根据在互联网上找到的内容准备了一些脚本:

check process unicorn
  with pidfile /srv/app/shared/pids/unicorn.pid
  start program = "/srv/app/current/config/unicorn.sh start" as uid app and gid app
  stop program = "/srv/app/current/config/unicorn.sh stop" as uid app and gid app
  group www

在这种情况下,似乎.bash_profile没有读取 — 如何更改它?或者,如何添加几个供$PATHmonit 使用的目录?

谢谢你的帮助。

答案1

我刚刚发现,最好的做法是让unicorn.shshebang 指向/bin/bash并设置$PATH在脚本的开头。

相关内容