Supervisorctl:未找到命令

Supervisorctl:未找到命令

作为 ec2 用户:

[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

我不明白为什么会发生这种情况。我检查了 sudoers 文件,但没有发现任何有意义的东西。请帮忙。

答案1

这通常意味着该命令不在 EC2 用户的 PATH 上。

如果您echo $PATH在两个 bash 会话中都这样做,您仍然会看到 root/usr/sbin/在其路径上。

要解决此问题,您可以通过将以下内容添加到 .bashrc 来添加到 ec2-user 的路径: export PATH="$PATH:/usr/sbin/"

或者,可执行文件的完整路径sudo /usr/sbin/supervisorctl应该可以工作。

答案2

经过反复检查,我发现很简单,supervisor 使用 python 2.6,无法在 amazon linux ami 上使用 2.7,显然(rhel fedora)你可以通过以下方式验证这一点

#python2.6 -c "import supervisor; print('success')"

成功

#python2.7 -c "import supervisor; print('success')"

回溯(最近一次调用最后一次):文件“”,第 1 行,ImportError:没有名为 Supervisor 的模块

所以你需要告诉系统使用 2.6 而不是 2.7 - 并且你必须确保这样做是安全的 - 你不希望其他应用程序开始搞乱。(假设你已经安装了 2.6 和 .27)

修复步骤如下:

首先运行此命令

# sudo update-alternatives --config python

将出现一个菜单,选择正确的菜单。#

有2个程序提供‘python’。

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  ]

问题解决了!

相关内容