Я запускаю команду supervisorctl с пользователем root и без пользователя without root . С пользователем root это нормально, но с sudo это не работает. Вот вывод:

[ec2-user@stg etc]$ sudo supervisorctl status
sudo: supervisorctl: command not found

Теперь я работаю с пользователем root :

[ec2-user@stg etc]$ sudo su -
Last login: Tue Jun  6 03:02:55 UTC 2017 on pts/1
[root@stg ~]# supervisorctl status
kafka                            BACKOFF   Exited too quickly (process log may have details)
zookeeper                        RUNNING   pid 24697, uptime 0:25:11

Переменная PATH показана ниже:

[root@stg ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/root/bin

[ec2-user@stg etc]$ echo $PATH
/home/ec2-user/.pyenv/shims:/home/ec2-user/.pyenv/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin

Пожалуйста, помогите мне исправить это.

1 ответ1

0

Это распространенная проблема, и вы правильно определили источник. Существует два возможных решения: убедиться, что все записи PATH для root также присутствуют для ec2-user , добавив следующее в свой профиль bash.

export PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/root/bin:$PATH"

Или, IMO, более элегантное решение, убедитесь, что ваш PATH содержит специальный каталог, содержащий supervisorctl .

Вы должны начать с поиска родительского каталога, запустив whereis supervisorctl под root .

# whereis supervisorctl
/whatever/path/bin

Который затем должен быть включен в ваш профиль Bash

$PATH="/whatever/path/bin:$PATH"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .