Systemd: Bapa semua proses lain
Linux, dan sistem lain * nix, selalu memulakan proses yang menjadi bapa kepada semua proses lain. Apabila anda menggunakan Systemd, proses itu adalah systemd, proses tersebut selalu disebut 'init' tanpa mengira sistem init. Setelah systemd dijalankan, ia akan memulakan daemon yang menjalankan subsistem. Daemon mengawal sumber yang anda ada dan sistem yang terbuka. Permintaan log masuk anda adalah perkhidmatan yang dikendalikan oleh systemd. Systemd memulakan banyak perkhidmatan lain dan juga memasang semua cakera anda, termasuk pemasangan snap.
Bagaimana anda mengawal apa yang bermula?
Pertama sekali, sistem init yang paling awal mempunyai tahap runle yang akan dikenali ramai pembaca. Runlevel 1 adalah mod pengguna tunggal, mod multi-pengguna 2 tanpa rangkaian dan 3-5 pengguna dan grafik. Menetapkan runlevel ke 0 bermaksud berhenti dan 6 bermaksud reboot. Pembangun systemd mendapati tahap ini tidak jelas sehingga mengubahnya menjadi sasaran. Sasaran tidak sama persis tetapi mempunyai fungsi yang serupa. Ketika sasaran tertentu sedang berjalan, kumpulan unit tertentu sedang berjalan. Lebih banyak lagi pada unit kemudian.
Menetapkan "runlevel", disebut target.
Anda dapat mengubah sasaran ketika berlari, misalnya Anda dapat menggunakan terminal untuk menetapkan sasaran anda kepada berbilang pengguna. Ini akan menghentikan GUI, X atau Wayland anda tetapi membiarkan anda dan orang lain, log masuk dengan konsol teks. Gunakan arahan berikut.
$ systemctl mengasingkan multiuser.sasaranAtau, jika anda ingin memulakan desktop anda, gunakan arahan berikut.
$ systemctl mengasingkan grafik.sasaranApa yang sebenarnya anda minati adalah bagaimana memulakan tahap yang betul, anda dapat mengetahui apa yang anda miliki sekarang dengan cara ini.
$ systemctl get-defaultUntuk menukar lalai tetapkannya.
$ systemctl set-default grafik.sasaranPerintah ini sebenarnya menjadikan banyak unit dan perkhidmatan bermula semasa anda boot komputer anda. Anda mungkin mahu memulakan atau menghentikan satu perkhidmatan sekalipun.
MULAI, berhenti, mengaktifkan dan mematikan perkhidmatan.
Di sinilah anda berpeluang untuk mengubah apa yang berlaku semasa boot dan semasa operasi biasa. Berbeza dengan sasaran, unit khusus untuk perkhidmatan tertentu. Untuk menghentikan perkhidmatan yang anda gunakan 'systemctl stop', anda juga boleh menggunakan 'start' dan 'restart'. Untuk memulakan perkhidmatan semasa boot, anda menggunakan 'aktifkan', untuk menghentikannya 'lumpuhkan'. Pilih perkhidmatan dan mulakan dan hentikannya semasa perkhidmatan dijalankan.
$ cawan status systemctl.perkhidmatanPerintah ini menunjukkan status perkhidmatan, juga menunjukkan senarai tindakan yang diambil oleh sistem berkenaan dengan perkhidmatan tersebut. Untuk menghentikan perkhidmatan, gunakan arahan di bawah.
$ cawan stop systemctl.perkhidmatanPerkhidmatan ini dihentikan untuk sesi semasa anda. Untuk menukarnya agar tidak bermula pada boot seterusnya, gunakan disable.
$ systemctl lumpuhkan cawan.perkhidmatanPerhatikan bahawa anda hanya boleh mematikan perkhidmatan, ini tidak akan mempengaruhi keadaan anda sekarang. Perkhidmatan ini terus berjalan. Walaupun pada boot seterusnya, ia tidak akan memulakan perkhidmatan.
Systemd juga mengawal pemasangan, peranti, soket dan banyak lagi. Unit lebih rendah dan lebih mudah difahami, jika anda pernah berurusan dengan Linux sebelum ini. Anda juga boleh menetapkannya sendiri tetapi kesan paling banyak pada boot ialah mengawal perkhidmatan.
Bagaimana anda menambah skrip anda sendiri?
Anda boleh menambahkan skrip anda sendiri dengan mudah, perincian yang menarik untuk diketahui adalah bagaimana anda membuat skrip atau perkhidmatan anda bergantung pada orang lain. Ini ditunjukkan dengan rapi dalam fail perkhidmatan resume wifi ini.
[Unit]Penerangan = Mulakan semula pengurus rangkaian pada resume
Selepas = menangguhkan.sasaran
Selepas = hibernate.sasaran
Selepas = tidur hibrid.sasaran
[Perkhidmatan]
Taip = oneshot
ExecStart = / bin / systemctl mulakan semula pengurus rangkaian.perkhidmatan
[Pasang]
WantedBy = menangguhkan.sasaran
WantedBy = hibernate.sasaran
WantedBy = tidur hibrid.sasaran
Kod ini mewujudkan perkhidmatan yang berlaku sekali (oneshot) setelah tiga sasaran yang disebutkan dalam kod. Kod yang dilaksanakan adalah dalam hal ini satu perintah. Anda juga boleh mengarahkan ExecStart ke skrip pilihan anda.
Kesimpulannya
Mengubah sistem anda, terutamanya dengan cara boot, anda boleh lakukan sendiri tetapi berhati-hatilah bahawa ini mempunyai banyak akibat untuk setiap perkhidmatan, jadi pastikan kod anda stabil dan cepat dilaksanakan.