プロセスを開始するためのブート順序を指定する必要があります。 Fedora 18で389 Directory ServerとSambaを実行しています。ネットワークサービス、389 DS、Sambaの順に起動するにはどうすればよいですか? Fedoraでこれを管理するためのGUIはありますか?
Sambaがsystemctl enable smb.service
で始まるようにしました。 389 DS with systemctl enable dirsrv.target
も有効にしました。
使用する systemctl edit smb.service
依存関係を更新します。
After=dirsrv.target
-dirsrv.targetの後にsmb.serviceが確実に開始されるようにします。
堅牢性のために(これをいじくり回している間は価値があります)、次のいくつかを含めることもできます。
Requires=dirsrv.target
-smb.serviceがアクティブ化されたときにdirsrv.targetをアクティブ化します。 dirsrv.targetが失敗した場合、smb.serviceが失敗します。
Wants=dirsrv.target
-smb.serviceがアクティブ化されたときにdirsrv.targetをアクティブ化します。 dirsrv.targetが失敗してもsmb.serviceが失敗しない。
BindsTo=dirsrv.target
-dirsrv.targetが非アクティブ化されている場合は、smb.serviceを非アクティブ化します。
ソース: http://www.freedesktop.org/software/systemd/man/systemd.unit.html
systemd-ui
はsystemdのGUIを提供します。 systemdの状態を適切に表示しますが、テキストエディターを使用してユニットファイルを変更する必要があります。
次の2つのことを行います。
/lib/systemd/system/smb.service
ユニットファイル。依存関係を指定します。 [unit]
セクションにはAfter=
この行の前に到達する必要があるサービス/ターゲットを指定する行。
After=syslog.target network.target nmb.service winbind.service
それを次のように変更します。
After=dirsrv.target syslog.target network.target nmb.service winbind.service
この依存関係をバグとしてFedoraに報告する 。これにより、将来のリリースに組み込むことができます。
/usr/lib/systemd/system
のサービスファイルを変更する方法は2つあります( 例2.ベンダー設定の上書き を参照):
ファイルを/etc/systemd/system
にコピーし、コピーに対して変更を行います。このファイルは、/usr/lib
のファイルを完全に上書きします。
ファイル/etc/systemd/system/smb.service.d/local.conf
を作成します。ファイルの内容は、以下の例のようになります。これにより、ベンダーが提供するサービスファイルの「Requires」および「After」オプションが選択的にオーバーライドされます。
これらのそれぞれ(/usr/lib
のファイルの変更を含む)には、長所と短所があります。最良の選択は、サービスと変更の性質によって異なります。
機能する場合もありますが、「後」オプションを追加するだけでは不十分です( [Unit]セクションオプション を参照)。 「後」は順序を制御しますが、依存関係は制御しません。 dirsrv.target
が他の方法で開始されていない場合、オーダーを指定しても開始されません。 「Requires」または「Wants」オプションを使用すると、dirsrv.target
が強制的に開始されます。
[Unit]
Requires=dirsrv.target
After=dirsrv.target
注意:この質問が最初に尋ねられたときに、このアプローチが利用可能であったかどうかはわかりません。
[Unit]
ファイルの/usr/lib/systemd/system/smb.service
セクションのRequires
ディレクティブを含む行を変更または含める必要がある場合があります。
Requires=dirsrv.target
そして
After=dirsrv.target