systemd ialah sistem permulaan moden pada Linux Ia bertanggungjawab untuk menguruskan permulaan sistem, perkhidmatan berjalan, log masuk pengguna, dll. Matlamat systemd adalah untuk menyediakan rangka kerja pengurusan sistem yang pantas, fleksibel dan berskala. Walau bagaimanapun, systemd bukan sekadar sistem permulaan, ia juga menyediakan banyak fungsi dan alatan lain untuk memudahkan anda mengurus dan memantau sistem Linux anda. Dalam artikel ini, kami akan membincangkan tiga perkara hebat yang boleh anda lakukan dengan systemd:
Apabila systemd mula-mula keluar, terdapat banyak berita tentang cara ia mempercepatkan masa but. Ciri ini menarik minat kebanyakan orang (kurang begitu kepada mereka yang tidak but semula), jadi dalam banyak cara, itulah reputasi yang masih ada sehingga kini. Walaupun systemd memainkan peranan dalam memulakan perkhidmatan secara selari semasa proses but, ia melakukan lebih daripada itu. Berikut adalah tiga perkara yang anda mungkin tidak sedar systemd boleh lakukan, tetapi anda harus memanfaatkannya.
Jika anda pernah menggunakan arahan ps
,甚至只是 top
, maka anda tahu bahawa komputer anda mempunyai beratus-ratus proses berjalan pada setiap masa. Kadangkala, ini hanyalah maklumat yang anda perlukan untuk memahami perkara yang dilakukan oleh komputer anda atau penggunanya. Pada masa lain, perkara yang anda perlukan ialah gambaran keseluruhan umum.
systemd-cgtop
命令提供了一个基于控制组cgroup任务安排的计算机负载的简单视图。控制组 对现代 Linux 很重要,基本上是容器和 Kubernetes 的底层支持结构(这也是云计算可以扩展的原因),但它们也是家庭电脑上的有用结构。例如,从 systemd-cgtop
, anda boleh melihat beban proses pengguna, bukan proses sistem:
Control Group Proc+ %CPU Memory Input/s Output/s / 183 5.0 1.6G 0B 3.0M user.slice 4 2.8 1.1G 0B 174.7K user.slice/user-1000.slice 4 2.8 968.2M 0B 174.7K system.slice 65 2.2 1.5G 0B 2.8M
Anda juga boleh melihat hanya proses ruang pengguna anda, atau melihat proses ruang pengguna dan benang kernel.
Ini sama sekali bukan pengganti top
或 ps
, tetapi cara untuk melihat sistem anda daripada perspektif yang berbeza dan unik. Ia boleh menjadi kritikal apabila menjalankan bekas kerana bekas menggunakan kumpulan kawalan.
Cron ialah komponen klasik Linux. Anda menggunakan Cron apabila anda ingin menjadualkan sesuatu berlaku secara tetap. Ia boleh dipercayai dan disepadukan ke dalam sistem anda dengan agak baik.
Masalahnya, Cron tidak faham bahawa sesetengah komputer akan ditutup. Jika anda mempunyai tugas cron yang dijadualkan pada tengah malam, tetapi anda menutup komputer anda pada 23:59 setiap hari, tugas cron anda tidak akan berjalan. Cron tidak mempunyai sebarang alat untuk mengesan kerja yang terlepas semalaman.
Sebagai jawapan kepada soalan ini, terdapat Anacron yang bagus, tetapi ia tidak sepadu seperti Cron. Untuk menjalankan Anacron, anda perlu melakukan banyak persediaan.
Pilihan kedua ialah pemasa sistemd. Seperti Cron, ia terbina dalam dan sedia untuk digunakan. Anda perlu menulis fail unit, yang pastinya lebih banyak kerja daripada entri Crontab satu baris, tetapi ia juga agak mudah. Sebagai contoh, berikut ialah fail unit yang menjalankan skrip sandaran hipotesis 30 minit selepas but, tetapi hanya sekali sehari. Ini memastikan komputer saya disandarkan dan menghalangnya daripada mencuba membuat sandaran lebih daripada sekali sehari.
[Unit] Description=Backup Requires=myBackup.service [Timer] OnBootSec=30min OnUnitActiveSec=1d [Install] WantedBy=timers.target
当然,你也可以干预并提示运行一个任务。多亏了 OnUnitActiveSec
指令,systemd 不会试图运行你手动激活的作业。
容器使启动一个复杂的服务变得非常容易。你可以在短短几分钟内运行一个 Mattermost 或 Discourse 服务器。在某些情况下,困难的部分是在你运行容器后管理和监控它们。Podman 使得管理它们变得容易,但是用什么来管理 Podman 呢?嗯,你可以使用 systemd。
Podman 有一个内置的命令来生成单元文件,这样你的容器就可以被 systemd 管理和监控:
$ podman generate systemd --new --files --name example_pod
然后你所要做的就是启动服务:
$ systemctl --user start pod-example_pod.service
和其他服务一样,systemd 确保你的容器荚在任何情况下都能运行。它记录问题,你可以用 journalctl
和其他重要的日志来查看,你也可以用 systemd-cgtop
在控制组中监控它的活动。
它不是 Kubernetes 平台,但对于一两个容器来说,你只需要在可靠和可预测的基础上提供服务,Podman 和 systemd 是一对很棒的组合。
本文介绍了三件可以用 systemd 做的令人惊讶的事情,它们可以让你更轻松地管理和监控你的 Linux 系统。systemd 的内容还有很多,你可以从作者 David Both 的新书《systemd 实用指南》中了解更多。希望本文对你有所帮助!
Atas ialah kandungan terperinci systemd: Kotak alat super di Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!