/etc/profileまたは/etc/environmentファイルを読み取る初期化レベルは何ですか?

/etc/profileまたは/etc/environmentファイルを読み取る初期化レベルは何ですか?

翻訳: Ph.D.:どの初期化レベルで/etc/profileまたは/etc/environmentファイルを読みますか?

/etc/init.d/myserviceにあるシェルスクリプトを起動するサービス()を作成したいと思います/opt/myservice/myservice.sh。ただし、この位置(/opt/myservice/)は設置時に定義された位置なので、固定された位置ではありません。

ファイルに環境変数/etc/profileまたは/etc/environment同様の変数を設定したとしますMYSERVICE_PATH=/opt/myservice# Default-Start: 3 4 5/etc/init.d/myservice

$MYSERVICE_PATH私の初期化スクリプトがそれを呼び出すことができるように、これらの初期化レベル(3、4、5)で常に利用可能であると仮定できますかsh $MYSERVICE_PATH/myservice.sh

答え1

誤った場所にアプリケーション構成情報を保存している可能性があります。

/etc/profileログインシェルのデフォルト設定を構成するために使用されます(たとえば、SSH経由で接続してbashログインシェルとして呼び出す場合など)。その目的は、アプリケーションのインストール場所などを構成することではありません。

/etc/しかし全体的にはそうです。あなたが探しているものを達成するための最良の方法は、おそらく常に常駐する構成ファイルを定義することです。/etc/myservice.confたとえば、次のようになります。

# Configuration file for the My Service daemon
#
# Default settings:
#   myservice_root - The directory in which the service is installed
#                    Default:  /var/run/myservice
#   myservice_port - The TCP port upon which the service listens for incoming connecitons
#                    Default:  55321
myservice_root=/opt/myservice
myservice_port=6466

これにより、アプリケーションは/etc/myservice.confファイルシステムのどこにインストールされているかにかかわらず、常にその構成を表示できます。他のシステム管理者は、ファイルがどの用途に使用されているか、どのオプションを再構成できるかをすぐに確認できます。

関連情報