Seperti yang telah dicatat oleh orang lain di sini, dalam teori, ini seharusnya tidak mempengaruhi pengguna akhir non-teknis - dan secara teori tidak ada perbedaan antara teori dan praktik tetapi dalam praktiknya ada.
Klarifikasi
Saya pikir beberapa hal yang diposting di sini perlu klarifikasi:
Ini adalah sistem init, bukan sesuatu yang secara tradisional berinteraksi dengan pengguna.
Itu adalah kasus dengan SysV init dan dengan pemula tetapi itu tidak terjadi dengan systemd lagi. Ia melakukan banyak hal yang secara tradisional berinteraksi dengan pengguna:
Itu harus sepenuhnya menggantikan fungsi yang disediakan oleh Pemula — dan melakukan beberapa hal tambahan
Dua hal untuk diklarifikasi - pertama tentang sepenuhnya mengganti pemula:
Tidak ada skrip init SysV
Salah satu masalah yang orang miliki dengan systemd adalah bahwa ia tidak menjalankan skrip init SysV. Jadi ada satu contoh yang tidak sepenuhnya menggantikan fungsi yang disediakan oleh Pemula.
Ini adalah sesuatu yang dapat kita andalkan selama lebih dari 30 tahun dan secara tradisional Anda menulis skrip init SysV untuk portabilitas maksimum tanpa mengulangi diri sendiri (dengan menulis beberapa versi skrip yang sama), yang tidak lagi menjadi masalah.
Ini seharusnya tidak menjadi masalah ketika menggunakan hanya paket dari repositori resmi karena mungkin semua paket yang dulu memiliki skrip init atau pemula SysV perlu memiliki skrip mereka ditulis ulang sebelum mereka dikemas.
Ini hanya akan menjadi masalah bagi orang-orang yang kebetulan menggunakan perangkat lunak pihak ketiga atau khusus yang memiliki skrip init mereka ditulis untuk init SysV atau untuk pemula dan mereka akan memerlukan skrip init ditulis ulang sebelum meningkatkan ke sistem dengan systemd (atau mendapatkan pemula yang terinstal, yang juga merupakan opsi , atau bermigrasi ke sistem yang tidak menggunakan systemd).
Ada systemd-sysv-generator yang seharusnya secara otomatis menerjemahkan skrip init SysV ke skrip systemd tetapi ada beberapa bug dan daftar panjang yang tidak kompatibel secara eksplisit .
Sekarang, klarifikasi kedua - tentang beberapa hal tambahan:
Beberapa hal ekstra
"Beberapa hal tambahan" yang akan dicakup systemd - menurut Perspektif untuk systemd - Apa yang Telah Dicapai, dan presentasi What Lies Ahead oleh Lennart Poettering pada 2014 di GNOME.asia - adalah sebagai berikut:
- sistem init
- jurnal logging
- manajemen login
- manajemen perangkat
- manajemen file sementara dan tidak stabil
- pendaftaran format biner
- backlight save / restore
- rfkill simpan / pulihkan
- bootchart
- readahead
- pengaturan penyimpanan terenkripsi
- Penemuan partisi EFI / GPT
- mesin virtual / registrasi kontainer
- manajemen wadah
- manajemen nama host
- manajemen lokal
- manajemen waktu
- manajemen benih acak
- manajemen variabel sysctl
- manajemen konsol
- introspeksi
- penemuan otomatis
- Pasang dan mainkan
- manajemen jaringan
- systemd-networkd
- Cache DNS
- responden mDNS
- Responden LLMNR
- Verifikasi DNSSEC
- IPC di kernel
- kdbus
- sd-bus
- sinkronisasi waktu dengan NTP
- systemd-timesyncd
- integrasi dengan wadah
- layanan pasir
- sandboxing aplikasi
- Format gambar OS
- Format gambar kontainer
- Format gambar aplikasi
- GPT dengan penemuan otomatis
- Sistem tanpa kewarganegaraan
- sistem instantiatable
- reset pabrik
- inisialisasi dan pembaruan node
- integrasi dengan cloud
- manajemen layanan lintas node
- gambar OS yang dapat diverifikasi sampai ke firmware
- Boot Sedang Memuat
- Membangun OS Generasi Berikutnya Internet. Memersatukan perbedaan yang tidak ada artinya antara distribusi
Jadi kembali ke: "Ini sistem init, bukan sesuatu yang secara tradisional berinteraksi dengan pengguna." - harus ditunjukkan bahwa sistem init hanyalah satu item dalam daftar itu.
Dan akhirnya, hal terakhir yang ingin saya komentari:
[T] dia hanya kali pengguna non-teknis akan melihat ini ketika itu salah.
Oh, sungguh melegakan. :)
Perubahan
Perubahan yang paling penting bagi pengguna akhir (selain skrip itu sendiri) adalah memulai dan menghentikan layanan dan menggunakan perintah seperti:
yang tidak lagi berfungsi seperti yang diharapkan. Misalnya, nohup
adalah perintah POSIX untuk memastikan bahwa proses terus berjalan setelah Anda keluar dari sesi Anda. Tidak lagi berfungsi pada systemd. Juga program-program seperti screen
dan tmux
perlu dipanggil dengan cara khusus atau jika tidak , proses yang Anda jalankan dengan mereka akan terbunuh (sementara proses-proses tersebut tidak terbunuh biasanya merupakan alasan utama menjalankan layar atau tmux di tempat pertama).
Ini bukan bug, ini adalah pilihan desain, jadi tidak mungkin diperbaiki di masa depan. Ini adalah apa yang Lennart Poettering mengatakan tentang masalah ini:
Dalam pandangan saya itu sebenarnya cukup aneh dari UNIX bahwa secara default biarkan kode pengguna yang sewenang-wenang tetap tidak dibatasi setelah keluar. Sudah dibahas sejak lama di antara banyak orang OS, bahwa ini seharusnya mungkin tetapi tentu saja bukan default, tetapi tidak ada yang berani sejauh ini untuk membalik saklar untuk mengubahnya dari default ke opsi. Tidak membersihkan sesi pengguna setelah logout tidak hanya jelek dan agak meretas tetapi juga masalah keamanan. systemd 230 sekarang akhirnya membalik sakelar dan akhirnya secara default membersihkan semuanya dengan benar ketika pengguna logout.
Untuk info lebih lanjut, lihat:
Lari screen
- pemula:
screen
- systemd:
systemd-run --user --scope screen
(Catatan: perilaku "pemula" di atas benar-benar apa pun kecuali systemd, ini bukan khusus pemula.
Memulai pekerjaan foo:
- pemula:
start foo
- systemd:
systemctl start foo
Menghentikan pekerjaan:
- pemula:
stop foo
- systemd:
systemctl stop foo
Mulai ulang pekerjaan foo:
- pemula:
restart foo
- systemd:
systemctl restart foo
Daftar pekerjaan dengan status mereka:
- pemula:
initctl list
- systemd:
systemctl status
(Lihat jawaban saya untuk Apa pro / kontra dari Upstart dan systemd? Untuk detail lebih lanjut di luar ruang lingkup untuk pertanyaan ini.)
Log
Ada juga perbedaan besar dalam penanganan log karena bertentangan dengan tradisi Unix, log systemd disimpan dalam file biner dalam format khusus, jadi alih-alih:
cat /var/log/upstart/foo.log
tail -f /var/log/upstart/foo.log
Anda perlu menggunakan perintah khusus untuk mengakses log Anda:
sudo journalctl -u foo
sudo journalctl -u foo -f
Kontroversi
Pengenalan systemd pertama ke Debian dan kemudian ke Ubuntu bukan tanpa kontroversi dan pertentangan besar seperti diketahui oleh siapa saja yang menulis salah satu artikel berikut:
Posisi resmi Debian pada systemd dan hasil kontroversi telah menyebabkan deklarasi Keluaran pada tahun 2014 dan berakhir dengan pengunduran diri Ian Jackson .
Init Freedom , Without-Systemd.org daninisiatif Systemd-Free.org lahir, dengan banyak diskusi tentang Hacker News .
Bacaan lebih lanjut