【问题标题】:env: bash: No such file or directoryenv:bash:没有这样的文件或目录
【发布时间】:2018-08-27 12:10:53
【问题描述】:

(是的,我检查了其他答案,这与行尾无关。)

nginx 上部署Passenger 时出现以下子流程错误。这是FreeBSD-11.1:

env: bash: No such file or directory

很奇怪。 nginx 进程以root 启动,然后移动到nobody,我确实将其shell 更改为/usr/local/bin/bash。这些用户中的任何一个都看不到bash,这很奇怪。但他们报告的路径不包括/usr/local/bin

root 环境:

uid=0(root) gid=0(wheel) groups=0(wheel),5(operator)

SERVER_SOFTWARE=nginx/1.14.0 Phusion_Passenger/5.3.4
PASSENGER_USE_FEEDBACK_FD=true
PATH=/sbin:/bin:/usr/sbin:/usr/bin
PWD=/
HOME=/
RC_PID=1360

对于nobody

uid=65534(nobody) gid=65534(nobody) groups=65534(nobody)

PYTHONUNBUFFERED=1
PASSENGER_SPAWN_WORK_DIR=/tmp/passenger.spawn.lJk10nqveb
RC_PID=1360
PASSENGER_USE_FEEDBACK_FD=true
NODE_PATH=/usr/local/lib/ruby/gems/2.5/gems/passenger/src/nodejs_supportlib
NODE_ENV=production
USER=nobody
PWD=/usr/local/www/pneb
HOME=/nonexistent
PASSENGER_APP_ENV=production
RAILS_ENV=production
SHELL=/usr/local/bin/bash
RACK_ENV=production
SHLVL=0
IN_PASSENGER=1
WSGI_ENV=production
LOGNAME=nobody
PATH=/sbin:/bin:/usr/sbin:/usr/bin
SERVER_SOFTWARE=nginx/1.14.0 Phusion_Passenger/5.3.4

这些用户都看不到 bash。我不确定哪个引发了错误。

我怎样才能解决这个问题?我希望Passengernginx 一起工作能够看到贝壳。

【问题讨论】:

  • 您的PATH 不包含/usr/local/bin,因为您已经写过,所以它无法找到它。将:/usr/local/bin 附加到PATH,或使用完整路径启动bash
  • 这就是问题所在。 nobody 用户没有家,没有 bash_profile。所以无法做到。
  • 你系统上的某个地方是启动 nginx 的配置。您可以在那里更改 PATH 。 “那里”在哪里取决于您没有告诉我们的细节 - nginx 是否作为 systemd 服务运行?在暴发户之下? SysV inittab? ...?
  • 不,不是 nginx.conf -- 那是在 nginx 启动之后读取的。我们想在你的系统上配置启动 nginx 的东西。

标签: bash nginx passenger


【解决方案1】:

已解决,感谢聊天中的 Charles Duffy:

将以下内容添加到nginx 启动器/usr/local/etc/rc.d/nginx

PATH=$PATH:/usr/local/bin

这给了 nginx 一个PATH 来查看bash

【讨论】:

    【解决方案2】:

    谢谢。这通过在 .zsh 终端中运行解决了我的问题

    运行 $ nano .zshrc 打开 .zshrc 然后 将此添加到文件中: PATH=$PATH:/usr/local/bin:$PATH

    【讨论】:

      猜你喜欢
      • 2013-07-01
      • 2021-06-24
      • 2015-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-17
      • 2016-05-06
      相关资源
      最近更新 更多