Solaris 11 で起動時にグローバル環境変数を設定する

Solaris 11 で起動時にグローバル環境変数を設定する

システムが起動するたびにいくつかの「プロジェクト」をエクスポートできるように、Solarisでファイルを作成したいと思います。

つまり

マシンの起動時にORACLE_HOME、ORACLE_SID、およびその他のいくつかのディレクトリをエクスポートしたいと思います。

エクスポートする必要がある2つのOracleフォルダは次のとおりです。

export ORACLE_HOME=/oracle/product/11.1.0/db_1/
export ORACLE_SID=orcl

エクスポートする必要がある別のフォルダは次のとおりです。

export TESTFOLDER_DIR=/test/testfolder/bin/

マシンが起動するたびにこれを行う必要があります。これは非常に迷惑です。

インターネットを検索しようとしましたが、まだ何も見ていません(続きを探しています)。エクスポートコマンドを使用してファイルを生成するのは簡単ですが、システムが起動時に使用できる場所にファイルを配置するのは問題です。

私ができる方法はありますか?

答え1

各アカウントにこれらの変数を設定する必要がある場合は、より簡単な方法は、エクスポートステートメントを/etc/profile。 .) 各アカウントに文書が提供されます。

その後、ファイルの末尾に追加できます。

export ORACLE_HOME=/oracle/product/11.1.0/db_1/
export ORACLE_SID=orcl
export TESTFOLDER_DIR=/test/testfolder/bin/

それ以外の場合は、シェル起動ファイル(おそらくまたはいずれ$HOME/.profile$HOME/.bash_profile)に次の3行を追加します。

rootとしてログインした場合(良い習慣ではない)、次のいずれかに/.profileなります。/root/.profile

最後に、どのシェルを使用しても、非対話型ログインコンテンツ(サービスなど)に対してこれらの変数を無条件に設定したい場合、およびSolaris 11.3以下を実行している場合は、この/etc/default/initファイルを使用できます。exportこのファイルは実際のシェルスクリプトではなく実際の構成ファイルなので、組み込みコマンドは必要ありません。たとえば、次のようになります。

ORACLE_HOME=/oracle/product/11.1.0/db_1/
ORACLE_SID=orcl
TESTFOLDER_DIR=/test/testfolder/bin/

Solaris 11.4 では、/etc/default/init環境変数を使用してサービスを設定せず、代わりにsvc:/system/environment:init属性を使用します。

# svccfg -s svc:/system/environment:init setprop environment/ORACLE_HOME = astring: /oracle/product/11.1.0/db_1/
# svccfg -s svc:/system/environment:init setprop environment/ORACLE_SID = astring: orcl
# svccfg -s svc:/system/environment:init setprop environment/TESTFOLDER_DIR  = astring: /test/testfolder/bin/
# svcadm refresh svc:/system/environment

答え2

Solaris 11 には、/etc/default/init次の文が含まれています。

# READERS OF THIS FILE: This file is Obsolete.  Migrate to reading properties from svc:/system/environment:init.

したがって、システム全体の環境変数は、SMFユーティリティと適切な方法で構成された適切なサービスを使用して設定でき、設定する必要があります。

関連情報