私に興味深いものがあります。質問この問題は手動で指定することで解決できますPATH
。
問題は、私のroot
ユーザーが次のようなことですPATH
。
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NGINX / PassengerでPuppet Masterをuserとして実行すると、次puppet
のようPATH
に設定されます。
/usr/sbin:/sbin
ユーザーの環境変数はどこに設定されていますかPATH
?puppet
ユーザーに正しい権限があることを確認するにはどうすればよいですかPATH
?ユーザーにシェルがありません:
puppet:x:103:106::/var/lib/puppet:/bin/false
Puppet Masterの起動を担当するRackファイルにconfig.ru
次の文を挿入して、PATH
ユーザーが何をpuppet
実行しているかを確認しました。
puts "PATH: " + ENV.fetch('PATH', 'null')
出力はPATH: null
なので、PATH
Passengerの実行時に環境変数はまったく設定されません。
私はUbuntu 14.04 amd64を実行しているDockerコンテナで作業しています。
ベストアンサー1
通常、LinuxはPATH
ドットファイルを読み取り、環境変数を設定します。ログインして/etc/profile
読んでください。デフォルトの環境変数を設定したら、たとえば.shell_profile
ドット.bash_profile
ファイルがない場合は読み込みを試み.bash_login
、存在しない場合は検索します.profile
。
問題に戻りましょう。ユーザーにpuppet
シェルがないか、上記のファイルをホストしません。を実行してみると確認できますecho "$SHELL" && echo "$PATH"
。
PATH
ドットファイルのいずれかを使用して手動で設定したり、次の内容を表示したりできます。http://www.puppetcookbook.com/posts/set-global-exec-path.html