Befehl läuft mit root aber nicht mit sudo

1431
Avi

Ich führe supervisorctlBefehl mit rootund without rootBenutzer. Mit rootBenutzer ist es ok aber mit sudofunktioniert es nicht. Hier ist die Ausgabe:

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

Jetzt laufe ich mit rootuser:

[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 Variable wird unten gezeigt:

[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 

Bitte helfen Sie mir, das Problem zu beheben.

0

1 Antwort auf die Frage

0
Robbie Mckennie

Dies ist ein häufiges Problem, und Sie haben die Quelle richtig identifiziert. Es gibt zwei mögliche Lösungen, um sicherzustellen, dass alle PATHvorhandenen Einträge ebenfalls vorhanden root sind, ec2-userindem Sie Ihrem bash-Profil Folgendes hinzufügen

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

Oder, IMO, die elegantere Lösung, stellen Sie sicher, dass Sie PATHdas entsprechende Verzeichnis enthalten supervisorctl.

Sie sollten zunächst das übergeordnete Verzeichnis finden, indem Sie whereis supervisorctlunter ausführen root.

# whereis supervisorctl /whatever/path/bin 

Das sollte dann in Ihrem Bash-Profil enthalten sein

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