ヘッドレスシステムで起動時に実行されるデーモンに必要な変数を入れるのは悪い考えですか/etc/profile.d/
?私が理解したのは、profile.d
誰かが対話型シェルを介してシステムにログインするまで実行されません。それでは、私のデーモンは最終的にシステム変数を保存し、誰かがシステムprofile.d
にログインするまでこれを設定しないでください。それとも、rc.local
無人システムで実行された後にこれらの変数を設定しますか? (システムはbashを実行するRHEL 6.5です。)
答え1
うまくいかなければ、それは悪い考えです。profile.d
誰かがログインしていない場合、実行されないことに対するあなたの懸念は妥当だと思います。
initスクリプトを/etc/rc.d/init.d(Red Hatの場合は正しいディレクトリだと思います。Ubuntuでは/etc/init.dです)に入れてデーモンを起動します。このスクリプトでは、目的の変数を宣言/定義でき、デーモンバイナリを起動するときにその変数が範囲内になければなりません。
リンクここプロセスが説明され、rc.local
この方法が優れている理由が正確に説明されています。
rc.local
実行がLinux INITに返されると、そのスクリプトに設定された変数は定義されなくなり、他の回答で述べられたアプローチは機能しません。したがって、これは誰かがログインする前であるため、暗黙的にprofile.dが実行される前です。
答え2
あなたの質問に直接答えるには、それがうまくいかない場合、それは単に悪い考えです。したがって、私の即時の答えは、うまくいかない場合は「いいえ」、うまくいけば「はい」です。試してみましたか?つまり、ログインしている人がいないと、システムでprofile.dが実行されていないことを確認しましたか?
操作方法の提案:rc.local
起動時に設定が適用されるように同じ方法でファイルを編集します。
新しく一般的なインストールを実行すると、何が起こっても一度試して、これらのファイル(またはprofile.d
)rc.local
に入力した設定が期待どおりに適用されることを確認する必要があります。うまくいけば/etc/profile.d
幸運にも設定でうまくいきます。
このリンクlinuxtopiaのオンラインブックは、それがRHEL 6にrc.local
あることを示しています。/etc/rc.d/rc.local