Solusi 1:
Gunakan systemctl edit smb.service
untuk memperbarui dependensi.
After=dirsrv.target
- Akan memastikan smb.service dimulai setelah dirsrv.target.
Untuk kekokohan, (yang akan bermanfaat jika Anda mengutak-atik hal ini), Anda mungkin juga ingin menyertakan beberapa hal berikut:
Requires=dirsrv.target
- Aktifkan dirsrv.target saat smb.service diaktifkan. Akan menyebabkan smb.service gagal jika dirsrv.target gagal.
Wants=dirsrv.target
- Aktifkan dirsrv.target saat smb.service diaktifkan. Tidak akan menyebabkan smb.service gagal jika dirsrv.target gagal.
BindsTo=dirsrv.target
- Jika dirsrv.target dinonaktifkan, nonaktifkan smb.service.
Sumber:http://www.freedesktop.org/software/systemd/man/systemd.unit.html
systemd-ui
menyediakan GUI untuk systemd. Memberikan pandangan yang baik tentang status systemd tetapi Anda masih harus menggunakan editor teks untuk mengubah file unit.
Solusi 2:
Lakukan dua hal:
-
Edit
/lib/systemd/system/smb.service
file unit, untuk menentukan ketergantungan.[unit]
bagian berisiAfter=
baris yang menentukan layanan/target apa yang harus dicapai sebelum layanan ini.After=syslog.target network.target nmb.service winbind.service
Ubah ke:
After=dirsrv.target syslog.target network.target nmb.service winbind.service
-
Laporkan ketergantungan ini kembali ke Fedora sebagai bug, sehingga dapat disertakan dalam rilis mendatang.
Solusi 3:
Anda mungkin perlu mengubah atau menyertakan baris dengan Requires
direktif dalam [Unit]
bagian dari /usr/lib/systemd/system/smb.service
berkas.
Requires=dirsrv.target
dan
After=dirsrv.target
Solusi 4:
Ada dua alternatif untuk memodifikasi file layanan di /usr/lib/systemd/system
(lihat Contoh 2. Mengesampingkan setelan vendor):
-
Salin file ke
/etc/systemd/system
dan lakukan modifikasi pada salinannya. File ini akan sepenuhnya menimpa file di/usr/lib
. -
Buat file
/etc/systemd/system/smb.service.d/local.conf
. Isi file harus seperti contoh di bawah ini. Ini secara selektif menimpa opsi "Membutuhkan" dan "Setelah" di file layanan yang disediakan vendor.
Masing-masing (termasuk memodifikasi file di /usr/lib
) menawarkan keuntungan dan kerugian. Pilihan terbaik mungkin bergantung pada layanan dan sifat modifikasi.
Meskipun mungkin berhasil, tidak cukup hanya menambahkan opsi "Setelah" (lihat Opsi Bagian [Unit]). "Setelah" mengontrol urutan, tetapi bukan dependensi. Jika dirsrv.target
tidak dimulai dengan cara lain, menentukan pesanan tidak akan memulainya. Penggunaan opsi "Requires" atau "Wants" akan memaksa dirsrv.target
untuk memulai.
[Unit]
Requires=dirsrv.target
After=dirsrv.target
NB:Saya tidak tahu apakah pendekatan ini tersedia saat pertanyaan ini awalnya diajukan.