初期化スクリプトがPWDで実行されない

初期化スクリプトがPWDで実行されない

gunicorn Webサーバーをインストールしてgunicorn virtualenv init.dスクリプトを作成しましたが、プロジェクトディレクトリでサービスをservice gunicorn start実行すると正常に実行されますが、現在の作業ディレクトリが/ rootまたは他のディレクトリと同じように変更されるとエラーが発生します。 initスクリプトを編集し、cd /root/demoproject/作業ディレクトリで実行したときにスクリプトの先頭に次のコマンドを追加しました。cd /root/demoproject/initスクリプトにコマンドを追加する以外に、実際の解決策は何ですか?

答え1

スクリプトを特定の作業ディレクトリで実行する必要がある場合(相対パスなどを使用するため)、スクリプトが作業ディレクトリを変更するのに問題はありません。

唯一したいことは、失敗した場合はゼロ以外の終了状態で終了することですcd

cd /root/demoproject || exit 1

環境変数の値に応じて、スクリプト内のディレクトリを変更することもできます。

cd "${MY_WORK_DIR:-/root/demoproject}" || exit 1

これにより、作業ディレクトリが指定されたディレクトリに変更されますが、MY_WORK_DIR変数が空であるか設定されていない場合、デフォルトはそのディレクトリに変更されます。/root/demoproject

関連情報