2
シェルスクリプトでユーザーを変更し、環境全体を読み込む
ユーザーを変更し、いくつかのrubyデーモンプロセスを起動する、私たちのupstartスクリプトに問題があります。 以前bash -c "do the business" -l someuserは、-lフラグを使用してログインをエミュレートすることを確認するだけでした。 これは今までうまく機能しており、ルビープロセスは次のエラーをスローしていました:require: no such file to load -- rubygems (LoadError)調査の結果、このエラーはスクリプトをrootユーザーとして実行した場合(つまり、私sudo suまたはupstartで実行した場合)にのみ発生することがわかりました。 最初にパスを手動で設定すると問題が解決するため、これはPATHの問題だと思います。 ユーザーを変更して環境全体をロードする方法はありますか? 私も試してみましたsu user -cとsudo。 テストを簡単にするために、私は「ルート化」(sudo su)して実行していますwhich bundle(バンドルはルビーです)。 ここに私が得るものがあります: sudo -i -u webuser which bundle #=>出力なし su -l webuser -c which bundle #=>出力なし sudo su - webuser -c which bundle #=>出力なし しかし、sshはwebuserとして …