CentOS 7.x のsystemctl起動時に環境変数を渡すには? - uehatsu's tech blog

CentOS 7.x ではサービス起動にserviceコマンドではなくsystemctlを使うようになりました。serviceコマンドを使っても動作しますが、最終的には利用出来なくなるのではないかと思います。

apache + passenger + rails 環境を作る必要があり、従来は/etc/init.d/httpdで環境変数を設定していたのですがCentOS7では見当たりません。

systemdに変更になったので、そのあたりに環境変数をセットする方法が隠されているのだろうと色々調べましたが思ったようなサイトに巡り会えませんでした。

systemdによるCentOS 7の管理 - ドロップインによるユニットのカスタマイズ

ここに「ドロップイン」という方法で変数をセットする方法が記載されているのですが独自拡張の環境変数には対応していないのか設定が反映されませんでした。

そこであきらめかけていたところに、偶然どんぴしゃなページを発見。

CentOS7 での Tomcat8 の自動起動設定

詳細は記載のページを見て頂くとして、/etc/sysconfig/httpd に環境変数をかけば良い事が判明

LANG=C
DATABASE_PASSWORD=<rails_db_pass>
SECRET_KEY_BASE=<secret_key_base>

$ sudo systemctl restart httpd

これで思っていた通りの動作になりました。このとき注意するのは"export OPTIONS=hogehoge"ではなく、"OPTIONS=hogehoge"でexportがいらないこと。従来はbashスクリプトなのでexportが必要でした。

CentOS7はまだまだ慣れないことがいっぱいです。以下の本を読んで勉強中です。

CentOS7で作るネットワークサーバ構築ガイド (Network server construction gu)
CentOS7で作るネットワークサーバ構築ガイド (Network server construction gu) サーバ構築研究会

秀和システム 2015-03-26
売り上げランキング : 22542


Amazonで詳しく見る
by G-Tools
 
カテゴリ

Who is uehatsu?

uehatsu

アーカイブ

Facebook page