comando executado com root mas não com sudo

0

Estou executando o comando supervisorctl com root e without root user. Com root user está ok, mas com sudo não está funcionando. Aqui está a saída:

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

Agora eu corro com root user:

[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
A variável

PATH é mostrada abaixo:

[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

Por favor, ajude-me a corrigi-lo.

    
por Avi 07.06.2017 / 04:42

1 resposta

0

Este é um problema comum e você identificou corretamente a origem. Há duas soluções possíveis, certificando-se de que todas as entradas PATH presentes para root também estejam presentes para ec2-user , adicionando o seguinte ao seu perfil bash

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

Ou, na solução mais elegante do IMO, verifique se o PATH inclui o diretório específico que contém supervisorctl .

Você deve começar localizando o diretório pai executando whereis supervisorctl em root .

# whereis supervisorctl
/whatever/path/bin

Que deve então ser incluído no seu perfil bash

$PATH="/whatever/path/bin:$PATH"
    
por 07.06.2017 / 07:12