env: bash: Нет такого файла или каталога - PullRequest
0 голосов
/ 27 августа 2018

(Да, я проверил другие ответы, и это не имеет никакого отношения к окончанию строки.)

Я получил следующую ошибку подпроцесса при развертывании Passenger на nginx. Это на FreeBSD-11.1:

env: bash: No such file or directory

Очень странно. Процесс nginx запускается как root, затем переходит к nobody, оболочку которого я действительно изменил на /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. Я не уверен, что выдает ошибку.

Как мне обойти эту проблему? Я ожидаю, что Passenger, работающий с nginx, сможет видеть оболочки.

1 Ответ

0 голосов
/ 27 августа 2018

Решено, благодаря Чарльзу Даффи в чате:

Добавьте следующее к nginx в /usr/local/etc/rc.d/nginx:

PATH=$PATH:/usr/local/bin

Это дает nginx PATH для просмотра bash.

...