0

私は edx オープン ソース コード ベースを使用しており、サーバー上でさまざまなタスクを実行しやすくするためにドットファイルをまとめています。次のbash関数に問題があります

edx-compile_assets() { 
    sudo -H -u edxapp bash
    source /edx/app/edxapp/edxapp_env
    cd /edx/app/edxapp/edx-platform
    paver update_assets cms --settings=aws
    paver update_assets lms --settings=aws
}

sudo -H -u edxapp bash実行されると、関数は停止し、何も起こりません。その環境を終了すると、残りの関数はユーザーとしてではedxappなく通常のユーザーとして実行され、コマンドが失敗します。

したがって、基本的には、別のプロセスを開始するように見えsudo -H -u edxapp bash、そのプロセスが終了すると、関数の残りの部分が実行さsimpleれます。edxapp usersudo -H -u edxapp bash

どんな助けでも大歓迎です、ありがとう:)

4

1 に答える 1

0

IIRCはオプションbashを取り、コマンド/スクリプト-cを呼び出しbashてすぐに実行できるようにします。したがって、余分なステートメント (source、cd、paver ...) をスクリプトに入れ-c myRemainingScript.sh、行末に追加しますsudo

于 2015-08-13T17:11:27.643 に答える