как пользователь ec2:
[ec2-user@stg etc]$ sudo supervisorctl status
sudo: supervisorctl: command not found
как корень:
[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
Я не могу понять, почему это происходит. Я проверил файл sudoers, но не нашел ничего значимого. Пожалуйста помоги.
Обычно это означает, что команда не указана в PATH пользователя EC2.
Если вы это сделаете echo $PATH
в обоих сеансах bash вы все еще видите, что root имеет /usr/sbin/
на их пути.
Чтобы исправить это, вы можете добавить к пути пользователя ec2, добавив следующее в .bashrc:
export PATH="$PATH:/usr/sbin/"
В качестве альтернативы полный путь к исполняемому файлу, sudo /usr/sbin/supervisorctl
должно сработать.
после перехода назад и вперед было просто, что супервизор использует python 2.6 и не работает с 2.7 на amazon linux ami, по-видимому (rhel fedora) вы можете проверить это,
#python2.6 -c "import supervisor; print('success')"
успех
#python2.7 -c "import supervisor; print('success')"
Traceback (последний вызов последним): файл "", строка 1, в ImportError: нет модуля с именем supervisor
поэтому вам нужно указать системе использовать 2.6 вместо 2.7 - и вы действительно должны убедиться, что это безопасно - вы не хотите, чтобы другие приложения начали портить. (предполагаю, что у вас уже установлены версии 2.6 и .27)
Итак, шаги по исправлению:
сначала запустите эту команду
# sudo update-alternatives --config python
появится меню выберите нужное. #
Есть 2 программы, которые предоставляют «питон».
Selection Command
-----------------------------------------------
*+ 1 /usr/bin/python2.7
2 /usr/bin/python2.6
Enter to keep the current selection[+], or type selection number: 2
#
выберите правильный, и ур готов к работе.
наконец, попробуйте это:
$ sudo /etc/init.d/supervisord start
Starting supervisord: [ OK ]
задача решена!