GNU/Linux >> Belajar Linux >  >> Linux

Ketergantungan sistem dan urutan boot

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:

  1. Edit /lib/systemd/system/smb.service file unit, untuk menentukan ketergantungan. [unit] bagian berisi After= 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
    
  2. 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):

  1. Salin file ke /etc/systemd/system dan lakukan modifikasi pada salinannya. File ini akan sepenuhnya menimpa file di/usr/lib .

  2. 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.


Linux
  1. Boot Non-grafis Dengan Systemd?

  2. Linux – Menonaktifkan Layanan Vbox Untuk Mengurangi Waktu Booting?

  3. Cara men-debug proses boot systemd di CentOS/RHEL 7 dan 8

  1. Bagaimana menghentikan layanan systemd

  2. Jadikan layanan pengguna systemd tergantung pada target sistem

  3. Bagaimana cara menjalankan skrip dengan systemd tepat sebelum dimatikan?

  1. Mulai, Hentikan, dan Mulai Ulang layanan di server systemd RHEL 7 Linux

  2. 10 perintah systemd yang berguna:Referensi

  3. Cara membuat layanan Systemd di Linux