Bagaimana Upstart berbeza?
Upstart mempunyai model untuk memulakan pekerjaan yang tersedia ketika acara itu berlaku. Bandingkan ini dengan systemd, yang memulakan proses yang menjalankan semua sistem lain. Perbezaan utama adalah bahawa Upstart sedang menunggu acara dan systemd adalah menyelaraskan pergantungan. Kedua-dua sistem boleh menjalankan skrip biasa dan kedua-duanya cuba memulakan secara selari. Oleh kerana perbezaannya sangat kecil, skrip Upstart biasanya dapat dipanggil dengan fail perkhidmatan systemd. Mereka juga boleh, kedua-duanya menjalankan fail sistemV yang tidak berubah. Sebenarnya, kedua-duanya mencari struktur fail sistemV lama secara lalai. Perbezaan besarnya ialah Upstart mencari peristiwa yang ditentukan untuk memulakan sesuatu. Oleh itu, jika anda ingin menambahkan perkhidmatan anda sendiri, anda perlu mengetahui dalam konteks mana anda memerlukan perkhidmatan anda. Biasanya ini mudah kerana anda akan menginginkan sesuatu yang berjalan, misalnya, di desktop anda. Desktop dimulakan dengan acara runlevel 5, jadi anda menetapkannya dalam skrip anda. Bagi systemd, sebaliknya, ini adalah sasaran grafik. Sebagai permulaan, anda juga mempunyai acara lain yang boleh anda gunakan seperti pemasangan, pemasangan dan permintaan papan kekunci. Ini ditangani dengan soket systemd melalui soket dan dbus.
Bagaimana anda memindahkan skrip?
Anda mempunyai semua skrip Upstart di / etc / init, namanya adalah nama pekerjaan dengan pelanjutan 'conf'. Skrip tidak dapat dilaksanakan, mereka hanya menunjukkan satu yang boleh dilaksanakan atau lebih yang harus dijalankan. Dalam mana-mana skrip Upstart, anda telah menentukan peristiwa mana skrip harus dimulakan dan kapan harus berhenti. Anda juga harus mempunyai entri sebelum dan selepas berhenti. Ini akan menyiapkan persekitaran dan membersihkannya setelah dilaksanakan. Contoh skrip ada di bawah
keterangan "Skrip ringkas"mulakan di runlevel [2345]
berhenti di runlevel [06]
respawn
env SCRIPT_ENV_VAR = '/ jalan / ke / fail.konfigurasi '
chdir / jalan / ke / skrip /
skrip exec bash.sh
Pernyataan 'exec' mengatakan apa yang akan berlaku apabila anda memulakannya secara manual. Arahan mula dan berhenti menentukan kapan skrip akan dimulakan secara automatik. Seperti yang anda lihat, anda juga boleh menetapkan direktori yang akan dijalankan. Terdapat banyak lagi aspek untuk Memulakan tetapi anda harus belajar bagaimana untuk berpindah.
Agar skrip ini berfungsi dalam systemd, anda perlu membuat fail perkhidmatan.
Unit]Huraian = Skrip ringkas
[Perkhidmatan]
Persekitaran = SCRIPT_ENV_VAR = / jalan / ke / fail.konfigurasi
WorkingDirectory = / jalan / ke / skrip
Skrip ExecStart = / usr / bin / bash.sh
Mulakan semula = selalu
[Pasang]
WantedBy = berbilang pengguna.sasaran
Di sini anda dapat melihat bahawa perkara yang sama berlaku tetapi dengan kata kunci lain. Formatnya mudah dan tepat. Daripada mempunyai runlevel, anda menunjukkan sasaran yang mahu skrip anda. Ini menunjukkan bahawa systemd adalah mengenai pergantungan dan memulakan perkara untuk persekitaran tertentu. Perhatikan juga bahawa ExecStart menunjukkan jalan global, ia tidak pernah menggunakan jalan tempatan.
Di mana ia cemerlang?
Upstart dirancang, untuk tingkah laku selari tetapi ia juga dirancang untuk menjadi kecil. Sekiranya anda menjumpai ini di mana sahaja ia tetap ada di sistem tertanam dan ChromeOS. Ya, ChromeOS memilikinya. Sebabnya ialah ia dibina di atas jika Ubuntu dari awal, pada masa ketika Ubuntu telah dimulakan sebagai sistem awal lalai. ChromeOS sejak itu beralih menggunakan Gentoo sebagai pangkalan mereka.
Kesimpulannya
Permulaan adalah topik yang menarik tetapi terutama bersejarah. Anda mungkin memerlukannya hanya jika anda mengalami sistem lama. Alternatif yang paling biasa di Linux sekarang adalah systemd. Sekiranya anda mempunyai tempahan mengenai systemd, anda harus mencari sistem minimum yang lain. Satu yang menarik adalah tanpa dosa, tanpa dosa. Ia menyokong tiga isyarat dan anda mesti menulis semua skrip untuknya sendiri, atau mengubah skrip dari orang lain. Ini boleh menjadi latihan yang menarik tetapi hanya berguna jika anda menggunakan sistem yang sangat minimum dan khusus.