- PR -

dot-qmail で環境変数

1
投稿者投稿内容
へたれエンジニア
会議室デビュー日: 2005/10/20
投稿数: 2
投稿日時: 2005-10-20 23:56
初めて投稿します。
/home/user_a/.qmail 内で下記のスクリプトを起動させております。

| /usr/local/bin/hoge.pl

この場合 user_a の権限でスクリプトが実行されると思いますが、
/home/user_a/.bash_profile に設定してある環境変数は適応されないのでしょうか?
# login しているわけではないので、そうなのかもしれませんが・・。

また .bash_profile の変わりになるようなファイル等は存在するのでしょうか?

稚拙な質問で恐縮ですが宜しくお願い致します。

# OS Fedora core3
# Qmail version 1.03
# root 権限はありません。

[ メッセージ編集済み 編集者: へたれエンジニア 編集日時 2005-10-21 01:00 ]
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-10-21 10:36
おはようございます。
.qmail 内に記述するコマンドに関しては、qmail-command の man に載っているのですが、次の通り、“sh -c コマンド”で起動されます。
引用:
qmail-command(8)より:
qmail-local は、ユーザーのホーム・ディレクトリで、 sh -c コマンドを実行します。


さて、Linuxでは sh = bash な訳ですが…、
引用:
bash(1)オプションの項より:
--noprofile
 システム全体用の起動ファイル /etc/profile および個人用の初期化ファイル ~/.bash_profile, ~/.bash_login, ~/.profile のいずれも読み込みません。デフォルトでは、 bash はログインシェルとして起動された時にこれらのファイルを読み込みます (後述の 起動 セクションを参照)。

--norc
 シェルが対話的動作を行う場合に、個人用初期化ファイル ~/.bashrc の読み込み・実行を行いません。シェルが sh として起動された場合には、このオプションはデフォルトで有効になります。


とありますので、--noprofile, --norc 両オプションが効いているのと同じ状態であり、sh -c 起動ですとどなたも読み込まれません。

結局のところ、.qmail に書くコマンドの中に環境変数の指定も入れてしまうか、起動されるコマンドの中で独自に環境変数を設定するか、それとも qmail-local の設定する環境変数で満足するか、でしょうか。

以上、ご参考まで。

追記:
 上述 bash(1) manページの「起動」セクションに、ずばり、
sh という名前の非対話的シェルとして起動されると、このシェルは他の起動ファイルを何も読み込みません。
とあるようですね。

[ メッセージ編集済み 編集者: angel 編集日時 2005-10-21 11:04 ]
へたれエンジニア
会議室デビュー日: 2005/10/20
投稿数: 2
投稿日時: 2005-10-22 01:15
angel さん、ご返信ありがとうございました。
非常にためになる情報ありがとうございます。

.qmail内で設定してみようと思います。
1

スキルアップ/キャリアアップ(JOB@IT)