команда запускается с рутом, но не с sudo

1358
Avi

Я бег 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 

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

0

1 ответ на вопрос

0
Robbie Mckennie

Это распространенная проблема, и вы правильно определили источник. Есть два возможных решения, чтобы убедиться, что 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" 

Похожие вопросы