翻訳: 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
ファイルシステムのどこにインストールされているかにかかわらず、常にその構成を表示できます。他のシステム管理者は、ファイルがどの用途に使用されているか、どのオプションを再構成できるかをすぐに確認できます。