GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Systemd Menggunakan Skrip /etc/init.d?

Saya baru saja beralih ke debian jessie, dan sebagian besar berjalan dengan baik, termasuk manajer tampilan grafis wdm .

Masalahnya, saya hanya tidak mengerti cara kerjanya. Jelas /etc/init.d/wdm saya skrip dipanggil, karena ketika saya meletakkan exit awal di sana, wdm tidak dimulai. Tetapi ketika saya mengganti nama /etc/rc3.d direktori (runlevel default saya dulu 3), maka wdm masih dimulai.

Saya tidak dapat mengetahui bagaimana systemd menemukan skrip ini dan saya tidak mengerti apa yang dilakukannya pada semua skrip init.d lainnya.

  • Kapan dan bagaimana systemd menjalankan skrip init.d?
  • Dalam jangka panjang, apakah saya harus menghapus semua skrip init.d?

Jawaban yang Diterima:

jawaban chaos adalah apa yang dikatakan beberapa dokumentasi. Tapi bukan itu yang sebenarnya dilakukan systemd. (Bukan itu yang rc van Smoorenburg melakukan, baik. Van Smoorenburg rc pasti tidak abaikan header LSB, yang insserv digunakan untuk menghitung pengurutan statis, sebagai permulaan.) Dokumentasi Freedesktop, seperti halaman “Inkompatibilitas” itu, sebenarnya salah, dalam hal ini dan poin lainnya. (HOME variabel lingkungan sebenarnya adalah sering diatur, misalnya. Ini sepenuhnya tidak didokumentasikan di mana pun untuk waktu yang lama. Sekarang didokumentasikan dalam manual, setidaknya, tetapi halaman WWW Freedesktop itu masih belum diperbaiki.)

Format layanan asli untuk systemd adalah unit layanan . manajemen layanan systemd beroperasi semata-mata dalam hal itu, yang dibaca dari salah satu dari sembilan direktori di mana (seluruh sistem) .service file bisa hidup. /etc/systemd/system , /run/systemd/system , /usr/local/lib/systemd/system , dan /usr/lib/systemd/system adalah empat dari direktori tersebut.

Kompatibilitas dengan van Smoorenburg rc skrip dicapai dengan program konversi, bernama systemd-sysv-generator . Program ini terdaftar di /usr/lib/systemd/system-generators/ direktori dan dengan demikian dijalankan secara otomatis oleh systemd di awal proses bootstrap pada setiap boot, dan sekali lagi setiap kali systemd diinstruksikan untuk memuat ulang konfigurasinya nanti.

Program ini adalah generator , sejenis utilitas tambahan yang tugasnya membuat file unit layanan dengan cepat, dalam tmpfs di mana tiga dari sembilan direktori tersebut (yang dimaksudkan untuk digunakan hanya oleh generator) berada. systemd-sysv-generator menghasilkan unit layanan yang menjalankan rc van van Smoorenburg skrip dari /etc/init.d , jika tidak menemukan unit layanan systemd asli dengan nama tersebut yang sudah ada di enam lokasi lainnya.

manajemen layanan systemd hanya tahu tentang unit layanan. Unit layanan yang dibuat (kembali) secara otomatis ini ditulis untuk memanggil rc van van Smoorenburg skrip. Mereka memiliki, antara lain:

[Unit]
SourcePath=/etc/init.d/wibble
[Service]
ExecStart=/etc/init.d/wibble start
ExecStop=/etc/init.d/wibble stop

Terkait:Ubuntu – Bagaimana menjalankan skrip .sh?

Kebijaksanaan yang diterima adalah bahwa van Smoorenburg rc skrip harus memiliki header LSB, dan dijalankan secara paralel tanpa menghormati prioritas yang ditentukan oleh /etc/rc?.d/ sistem. Ini salah di semua poin.

Faktanya, mereka tidak perlu memiliki header LSB, dan jika mereka tidak systemd-sysv-generator dapat mengenali header komentar RedHat lama yang lebih terbatas (description: , pidfile: , Dan seterusnya). Selain itu, jika tidak ada header LSB, ia akan kembali ke konten /etc/rc?.d peternakan tautan simbolik, membaca prioritas yang dikodekan ke dalam nama tautan dan membangun sebelum/sesudah memesan dari mereka, membuat serial layanan. Header LSB tidak hanya bukan persyaratan, dan tidak hanya mereka sendiri yang dikodekan sebelum/sesudah pemesanan yang membuat banyak hal bersambung sampai batas tertentu, perilaku fallback jika tidak ada sama sekali sebenarnya adalah operasi non-paralel secara signifikan.

Alasan mengapa /etc/rc3.d tampaknya tidak masalah adalah bahwa Anda mungkin mengaktifkan skrip itu melalui /etc/rc?.d/ lain direktori. systemd-sysv-generator translate terdaftar di salah satu /etc/rc2.d/ , /etc/rc3.d/ , dan /etc/rc4.d/ menjadi Wanted-By hubungan dengan multi-user.target systemd . Run level sudah "usang" di dunia systemd, dan Anda bisa melupakannya.

Bacaan lebih lanjut

  • systemd-sysv-generator . halaman manual systemd. Freedesktop.org.
  • “Variabel lingkungan dalam proses yang dihasilkan”. systemd.exec . halaman manual systemd. Freedesktop.org.
  • https://unix.stackexchange.com/a/394191/5132
  • https://unix.stackexchange.com/a/204075/5132
  • https://unix.stackexchange.com/a/196014/5132
  • https://unix.stackexchange.com/a/332797/5132

Linux
  1. Cara membuat layanan Systemd di Linux

  2. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  3. Bagaimana /etc/motd Diperbarui?

  1. CentOS / RHEL :Cara Memulihkan dari file /etc/passwd yang dihapus

  2. Kapan saya harus menggunakan /dev/shm/ dan kapan saya harus menggunakan /tmp/?

  3. Cara me-restart MySQL

  1. Bagaimana cara mengetahui apakah saya menggunakan systemd di Linux?

  2. /etc/passwd menampilkan pengguna dalam grup, tetapi /etc/group tidak

  3. Apa hubungan antara direktori /etc/init.d dan /etc/rcX.d di Linux?