GNOME disesuaikan untuk diuruskan melalui systemd

Benjamin Berg (Benjamin Berg), salah seorang jurutera Red Hat yang terlibat dalam pembangunan GNOME, digeneralisasikan hasil kerja pada peralihan GNOME kepada pengurusan sesi secara eksklusif menggunakan systemd, tanpa menggunakan proses gnome-session.

Ia telah digunakan untuk beberapa lama untuk mengawal log masuk ke GNOME. systemd-login, yang menjejaki keadaan sesi khusus pengguna, mengurus pengecam sesi, bertanggungjawab untuk menukar antara sesi aktif, menyelaraskan persekitaran berbilang tempat duduk, mengkonfigurasi dasar akses peranti, menyediakan alat untuk menutup dan tidur, dsb.

Pada masa yang sama, sebahagian daripada fungsi berkaitan sesi kekal di bahu proses gnome-session, yang bertanggungjawab untuk mengurus melalui D-Bus, melancarkan pengurus paparan dan komponen GNOME, dan mengatur autorun bagi aplikasi yang ditentukan pengguna. . Semasa pembangunan GNOME 3.34, ciri khusus gnome-session dibungkus sebagai fail unit untuk systemd, dilaksanakan dalam mod "systemd β€”user", i.e. berhubung dengan persekitaran pengguna tertentu, dan bukan keseluruhan sistem. Perubahan tersebut telah pun dilaksanakan dalam pengedaran Fedora 31, yang dijangka akan dikeluarkan pada penghujung Oktober.

Menggunakan systemd memungkinkan untuk mengatur pelancaran pengendali atas permintaan atau apabila peristiwa tertentu berlaku, serta bertindak balas dengan lebih canggih terhadap penamatan proses pramatang akibat kegagalan dan mengendalikan kebergantungan secara meluas apabila memulakan komponen GNOME. Akibatnya, anda boleh mengurangkan bilangan proses yang sentiasa berjalan dan mengurangkan penggunaan memori. Contohnya, XWayland kini hanya boleh dilancarkan apabila cuba menjalankan aplikasi berdasarkan protokol X11 dan komponen khusus perkakasan hanya boleh dilancarkan jika perkakasan tersebut ada (contohnya, pengendali untuk kad pintar akan bermula apabila kad dimasukkan dan ditamatkan apabila ia dikeluarkan).

Alat yang lebih fleksibel untuk mengurus pelancaran perkhidmatan telah muncul untuk pengguna; sebagai contoh, untuk melumpuhkan pengendali kunci multimedia, ia akan mencukupi untuk melaksanakan "systemctl -user stop gsd-media-keys.target". Sekiranya berlaku masalah, log yang dikaitkan dengan setiap pengendali boleh dilihat dengan arahan journalctl (contohnya, "journalctl β€”user -u gsd-media-keys.service"), setelah mendayakan pengelogan nyahpepijat dalam perkhidmatan sebelum ini ("Environment= G_MESSAGES_DEBUG=semua”). Ia juga mungkin untuk menjalankan semua komponen GNOME dalam persekitaran kotak pasir terpencil, yang tertakluk pada peningkatan keperluan keselamatan.

Untuk melicinkan peralihan, sokongan untuk cara lama menjalankan proses dirancang berterusan sepanjang beberapa kitaran pembangunan GNOME. Seterusnya, pembangun akan menyemak keadaan sesi gnome dan kemungkinan besar (ditandakan sebagai "kemungkinan") mengalih keluar alatan untuk melancarkan proses dan mengekalkan API D-Bus daripadanya. Kemudian penggunaan "systemd -user" akan diturunkan kepada kategori fungsi mandatori, yang boleh menimbulkan kesukaran untuk sistem tanpa systemd dan akan memerlukan penyediaan penyelesaian alternatif, seperti yang pernah berlaku dengan systemd-login. Walau bagaimanapun, dalam ucapannya di GUADEC 2019, Benjamin Berg menyebut hasrat untuk mengekalkan sokongan untuk kaedah permulaan lama untuk sistem tanpa systemd, tetapi maklumat ini bertentangan dengan rancangan untuk halaman projek.

Sumber: opennet.ru

Tambah komen