- systemctl adalah antarmuka utama untuk mengelola layanan, unit, dan target systemd di sebagian besar distribusi. Linux saat ini
- Ini memungkinkan Anda untuk memulai, menghentikan, memulai ulang, memuat ulang, mengaktifkan dan menonaktifkan layanan, serta memeriksa status, dependensi, dan file drive-nya.
- Target (.target) menggantikan runlevel klasik dan mempermudah perubahan status global sistem (multi-user, grafis, penyelamatan, pematian, atau reboot).
- Pengeditan unit terkontrol dan penggunaan gabungan systemctl dengan journalctl merupakan kunci untuk mendebug kesalahan dan menjaga sistem tetap stabil.
Mendominasi systemctl dan systemd Saat ini, alat ini praktis wajib dimiliki jika Anda mengelola server atau sistem Linux modern. Alat ini adalah gerbang untuk mengontrol layanan mana yang dimulai, bagaimana cara memulainya, apa yang gagal, dan status sebenarnya dari sistem Anda pada waktu tertentu. Setelah Anda terbiasa menggunakannya, Anda akan terhindar dari banyak masalah dan banyak restart yang tidak perlu.
Sepanjang panduan ini, Anda akan melihat secara teratur dan dengan contoh bagaimana cara menggunakannya. Gunakan systemctl untuk mengelola layanan, unit, dan tujuan.Cara menampilkan daftar aktivitas dalam sistem, cara mengedit drive tanpa merusak apa pun, dan arti dari berbagai status seperti ini. diaktifkan, bertopeng o statisdan juga Trik Untuk mematikan, memulai ulang, atau beralih dari mode grafis ke mode teks dengan satu perintah. Semuanya menggunakan sebuah Bahasa Spanyol dari Spanyol, lugas dan praktis., dirancang agar Anda dapat menerapkan apa yang Anda baca ke distribusi berbasis systemd apa pun (Ubuntu, Debian, RHEL, CentOS, Fedora, Arch, dll.).
Apa itu systemd dan apa peran systemctl?
Pada sebagian besar distribusi saat ini, systemd bertindak sebagai sistem startup dan infrastruktur dasar.Ini adalah proses yang dimulai tepat setelah kernel (biasanya sebagai PID 1) dan bertanggung jawab untuk memulai layanan lainnya, memasang sistem file, mengelola dependensi, mengontrol sesi, mencatat peristiwa, dan banyak lagi.
systemd terdiri dari daemon, pustaka, dan utilitas yang memungkinkan komunikasi dengan kernel dan ruang pengguna: mengelola grup kontrol (cgroups), soket, pengatur waktu, titik pemasangan, konfigurasi jaringan dasar, sinkronisasi waktu, resolusi nama, kontainer, dan mesin virtualdan bahkan kompatibel dengan skrip SysV dan LSB yang lebih lama, sehingga dapat sepenuhnya menggantikan Sysvinit Klasik.
Dalam keseluruhan ekosistem ini, systemctl adalah "kendali jarak jauh" dari systemd.Ini adalah utilitas online dari perintah yang Anda gunakan untuk:
- Memulai, menghentikan, memulai ulang, atau memuat ulang layanan. dan jenis unit lainnya.
- Mengaktifkan atau menonaktifkan unit agar mereka dapat memulai (atau tidak) dengan sistem tersebut.
- Periksa statusnya tentang layanan, tujuan, dan sistem secara umum.
- Edit file drive atau melihat dependensi dan properti internalnya.
- Ubah status global dari sistem (mode penyelamatan, multi-pengguna, grafis, pematian, memulai ulang…).
Perlu diingat bahwa tidak semua distribusi menggunakan systemd. Jika saat menjalankan systemctl Anda melihat pesan seperti ini: bash: systemctl: command not found Atau sesuatu yang serupa; sistem Anda kemungkinan menggunakan sistem init yang berbeda (OpenRC, runit, SysV murni, dll.). Dalam hal itu, Perintah-perintah dalam panduan ini tidak berlaku. apa adanya.
Drive dan file drive di systemd
Konsep kunci dalam systemd adalah satuanSuatu unit mewakili setiap sumber daya yang mampu dikelola oleh systemd: sebuah layanan, sebuah soket, sebuah titik pemasangan, sebuah perangkat, sebuah tujuan global sistem, sebuah pengatur waktu… Setiap jenis unit diidentifikasi oleh sebuah akhiran pada nama file.
Beberapa jenis unit yang paling umum Anda temui saat bekerja dengan systemctl dan systemd suara:
- .layanan: layanan dan daemon (nginx.service, ssh.service, NetworkManager.service…).
- .stopkontak: soket yang terkait dengan layanan yang dimulai sesuai permintaan.
- .gunung: titik pemasangan sistem file.
- .automount: rakitan otomatis diaktifkan untuk digunakan.
- .target: status sistem (multi-user.target, graphical.target, rescue.target…).
- .pengatur waktu: pengatur waktu yang meluncurkan layanan pada waktu tertentu.
- .perangkat: perangkat yang dikelola oleh udev.
- .jalur: monitor rute pada disk yang memicu layanan.
Setiap unit didefinisikan dalam sebuah berkas unityang merupakan berkas teks dengan bagian-bagian seperti , , , di mana deskripsi, dependensi, dan perintahnya dijelaskan secara rinci. boot, pengguna yang menjalankan layanan, dll. File-file ini biasanya disimpan di:
- /lib/systemd/system/ o /usr/lib/systemd/system/: unit yang disertakan dalam paket.
- / etc / systemd / system /: unit yang ditentukan atau ditimpa oleh administrator.
ketika Anda bekerja dengan systemctlAnda hampir selalu merujuk pada satuan tipe .layananNamun, jika Anda menghilangkan akhiran tersebut, systemd secara default menganggap Anda merujuk ke sebuah layanan. Artinya, systemctl start ssh y systemctl start ssh.service adalah setara.
Ada unit khusus yang disebut template, yang namanya mencakup @, sebagai contoh name@.serviceSaat membuat instance template sebagai name@miinstancia.serviceApa yang kamu lakukan adalah menciptakan sebuah contoh spesifik yang meneruskan pengidentifikasi; di dalam file unit, variabel %i Ini digantikan oleh pengidentifikasi tersebut. Ini biasanya digunakan dalam terowongan SSH, layanan antarmuka jaringan, dll.
Periksa apakah sistem Anda menggunakan systemd.
Sebelum Anda mulai menggunakan berbagai perintah, ada baiknya untuk memeriksa apakah distribusi Linux Anda benar-benar menggunakannya. sistemd sebagai PID 1Banyak panduan menyarankan sesuatu yang sesederhana ini:
pstree | head -5
Jika di puncak pohon Anda melihat sebuah proses systemdAnda dapat melanjutkan tanpa masalah. Jika Anda melihat sistem init yang berbeda, Anda perlu menggunakan alat khusus untuk sistem startup tersebut.
Manajemen layanan dasar dengan systemctl
Operasi sehari-hari dengan systemd biasanya berfokus pada Memulai, menghentikan, memulai ulang, dan memuat ulang layanan.Perintah-perintah ini memengaruhi status layanan saat ini, bukan apakah layanan tersebut akan dimulai secara otomatis bersama sistem atau tidak.
untuk memeriksa status layanan, kamu bisa memakai:
systemctl status nombre_servicio.service
Sebagai contoh, untuk melihat bagaimana kinerja layanan jaringan. systemd-jaringan pada sistem Ubuntu mode teks:
systemctl status systemd-networkd.service
Perintah ini menampilkan informasi yang cukup detail: status (aktif, tidak aktif, gagal…), saat diaktifkan, PID utama, penggunaan CPU, dan beberapa pesan log terbaru yang sangat berguna untuk mendiagnosis masalah.
Jika Anda menginginkan sesuatu yang lebih langsung, Anda dapat menggunakan variasi spesifik berikut:
- systemctl is-active name.service: menunjukkan apakah sedang aktif (berjalan) atau tidak.
- systemctl diaktifkan name.service: menunjukkan apakah akan dimulai dari awal.
- systemctl gagal name.service: memeriksa apakah telah memasuki kondisi kesalahan.
Sebagai contoh, untuk melihat apakah systemd-networkd diaktifkan saat startup, Anda dapat menjalankan perintah berikut:
systemctl is-enabled systemd-networkd.service
Dan untuk mengetahui apakah mesin gagal menyala di titik tertentu:
systemctl is-failed systemd-networkd.service
Memulai, menghentikan, memulai ulang, dan memuat ulang layanan
untuk menghentikan layanan yang sedang berjalanUrutan tipikalnya adalah:
sudo systemctl stop nombre_servicio.service
Perlu diingat bahwa karena ini adalah tindakan yang memengaruhi sistem, Anda perlu hak istimewa administrasi, biasanya menggunakan sudoPada beberapa layanan yang "bandel", seperti systemd-networkd, menghentikannya akan menyebabkan layanan tersebut langsung dimulai ulang jika ada unit yang membutuhkannya dan memiliki kebijakan memulai ulang otomatis.
Jika layanan dihentikan dan Anda ingin mulai ituAnda menggunakan pola yang sama dengan start:
sudo systemctl start systemd-networkd.service
Saat Anda mengubah file konfigurasi dan ingin menerapkan perubahan tersebut, hal yang paling umum dilakukan adalah... restart layanan:
sudo systemctl restart nombre_servicio.service
Banyak setan mengizinkan Muat ulang pengaturan Anda tanpa memulai ulang sepenuhnya.menghindari pemutusan sambungan aktif. Dalam kasus ini, hal berikut digunakan:
sudo systemctl reload nombre_servicio.service
Jika Anda tidak yakin apakah layanan tersebut mendukung pengisian ulang, Anda dapat mencoba:
sudo systemctl reload-or-restart nombre_servicio.service
Dengan perintah ini, systemctl mencoba memuat ulang terlebih dahulu Dan jika unit tersebut tidak melakukan pemuatan ulang, maka akan dilanjutkan ke reboot penuh. Ini sangat berguna ketika Anda tidak mengingat perilaku spesifik dari setiap daemon.
Mengaktifkan dan menonaktifkan layanan saat startup.
Semua yang telah kita lihat sejauh ini hanya memengaruhi sesi saat iniJika Anda ingin suatu layanan berjalan secara otomatis saat sistem melakukan booting, Anda perlu melakukan hal berikut: aktifkanPerintah dasarnya adalah:
sudo systemctl enable nombre_servicio.service
Dengan melakukan hal tersebut, systemd menciptakan tautan simbolik dari file layanan sistem (biasanya di /lib/systemd/system o /etc/systemd/system) hingga ke direktori .wants sesuai dengan target tempat ia harus diaktifkan. Misalnya, seperti ini:
/etc/systemd/system/multi-user.target.wants/nombre_servicio.service
Jika Anda menginginkan hal yang benar-benar sebaliknya, yaitu, mencegah layanan agar tidak berjalan secara otomatis Nonaktifkan fitur ini pada saat startup berikutnya:
sudo systemctl disable nombre_servicio.service
Ini menghapus tautan boot simbolis, tetapi Hal ini tidak menghentikan layanan yang sudah berjalan.Demikian pula, mengaktifkan suatu layanan tidak akan langsung memulainya: layanan tersebut baru akan efektif setelah komputer dihidupkan ulang, kecuali jika Anda menggabungkan hal-hal berikut:
sudo systemctl enable nombre_servicio.service
sudo systemctl start nombre_servicio.service
Beberapa distribusi dan alat menawarkan jalan pintas untuk mengaktifkan dan memulai secara bersamaanNamun, cara standar menggunakan systemctl biasanya adalah dengan menjalankan kedua perintah tersebut.
Lihat status keseluruhan unit.
systemctl tidak hanya berguna untuk mengakses layanan individual; ia juga memungkinkan untuk mendapatkan gambaran umum sistemPerintah yang paling umum adalah:
systemctl list-units
Daftar ini menunjukkan semua unit aktif yang dimiliki systemd dalam memori. Kolom utamanya adalah:
- UNIT: nama unit (misalnya,
sshd.service). - LOAD: apakah file drive telah dimuat dengan benar (dimuat, tidak ditemukan, error…).
- AKTIF: status umum (aktif, tidak aktif, gagal…).
- SUB: substatus yang lebih deskriptif (berjalan, keluar, mati, gagal…).
- DESKRIPSIDeskripsi singkat tentang unit tersebut.
Jika Anda menelepon systemctl tanpa argumenAnda akan melihat daftar yang hampir sama, karena itu adalah perilaku default-nya. Karena hanya unit aktif yang ditampilkan, hampir semuanya akan muncul dengan LOAD=termuat dan ACTIVE=aktif.
Untuk menyertakan unit yang tidak aktif juga, Anda dapat menambahkan indikator. --all:
systemctl list-units --all
Anda juga dapat memfilter berdasarkan negara bagian dengan --state=Sebagai contoh, untuk hanya melihat drive yang tidak aktif:
systemctl list-units --all --state=inactive
Atau saring berdasarkan jenis unit dengan --type=Sebagai contoh, untuk hanya melihat layanan yang aktif:
systemctl list-units --type=service
Daftar semua file drive yang terpasang
Daftar di atas hanya menampilkan unit yang telah dicoba dimuat oleh systemd. Jika Anda ingin mengetahui lebih lanjut. semua drive yang ada di diskEntah Anda menggunakannya atau tidak, Anda harus menggunakan cara berikut:
systemctl list-unit-files
Di sini fokusnya adalah pada file unit itu sendiri, bukan pada statusnya di memori. Anda akan melihat dua kolom utama: BERKAS UNIT y NEGARADi STATE, nilai-nilai seperti berikut akan muncul:
- diaktifkanUnit ini dikonfigurasi untuk menyala secara otomatis.
- cacat: Tidak dikonfigurasi untuk memulai secara otomatis.
- statisUnit ini tidak memiliki bagian.
, jadi tidak dapat mengaktifkan dirinya sendiriBiasanya ini merupakan ketergantungan pada unit lain atau untuk melakukan tindakan tertentu. - bertopengUnit tersebut terkunci sepenuhnya; tidak dapat dihidupkan dengan cara apa pun.
Anda juga dapat memfilter berdasarkan status, misalnya untuk hanya melihat unit yang diaktifkan:
systemctl list-unit-files --state=enabled
Atau gabungkan beberapa negara bagian menjadi satu kueri dengan memisahkannya menggunakan koma:
systemctl list-unit-files --state=enabled,failed
Lihat detail, properti, dan dependensi suatu unit.
Jika Anda ingin melihat isi sebenarnya dari file drive Karena systemd menggunakan perintah yang paling mudah, maka perintahnya adalah:
systemctl cat nombre.service
Ini menunjukkan file seperti yang dilihat oleh systemd, termasuk fragmen penggantian apa pun dari /etc/systemd/systemIni sangat berguna untuk memastikan bahwa perubahan Anda benar-benar telah diperhitungkan.
Untuk memeriksa pohon ketergantungan Dari satu unit, Anda dapat menggunakan:
systemctl list-dependencies nombre.service
Outputnya bersifat hierarkis, menunjukkan tujuan dan layanan mana yang mendorong layanan yang bersangkutan. Unit-unit bertipe .target Mereka bertindak sebagai titik pengelompokan dan hanya mereka yang secara rekursif menunjukkan ketergantungannya secara default; jika Anda ingin memperluas seluruh pohon, tambahkan --all.
Jika apa yang perlu Anda ketahui adalah Satuan mana yang bergantung pada satuan yang Anda tunjukkan, Menambahkan --reverse ke perintah tersebut. Dan jika Anda ingin fokus pada urutan boot, flag-nya --before y --after Mereka menunjukkan unit mana yang harus dimulai sebelum atau setelah unit target.
Untuk melihat semua properti internal Untuk unit dalam format key=value, gunakan:
systemctl show nombre.service
Dan jika Anda hanya tertarik pada properti tertentu, Anda dapat memfilter dengan -pSebagai contoh, untuk melihat konflik sshd:
systemctl show sshd.service -p Conflicts
Unit pemasangan dan pelepasan masker
Selain menonaktifkan, systemd memungkinkan menyembunyikan unit sehingga sama sekali tidak mungkin untuk melakukan booting.Teknik ini digunakan ketika Anda ingin memastikan 100% bahwa sesuatu tidak akan menyala, bahkan secara tidak sengaja. Hal ini dapat dilakukan secara manual atau dengan mengandalkan unit lain.
Penyamaran diimplementasikan dengan membuat sebuah tautan simbolik ke /dev/null alih-alih file drive yang sebenarnya. Untuk menyembunyikan layanan, misalnya nginx:
sudo systemctl mask nginx.service
Jika Anda kemudian berlari systemctl list-unit-files, Anda akan melihat itu nginx.service muncul sebagai masked (tertutup).Dan jika Anda mencoba memulainya:
sudo systemctl start nginx.service
Anda akan menerima pesan seperti ini: Gagal memulai nginx.service: Unit nginx.service sedang dinonaktifkan. Dengan kata lain, unit tersebut berlapis baja. Agar dapat digunakan kembali, perlu dilakukan hal-hal berikut: mengungkap identitasnya:
sudo systemctl unmask nginx.service
Setelah itu, unit kembali ke keadaan sebelumnya (diaktifkan, dinonaktifkan, statis, dll.) dan kemudian dapat dihidupkan atau diaktifkan secara normal.
Edit file drive tanpa merusak sistem.
Terkadang Anda perlu menyesuaikan perilaku suatu layanan: mengubah pengguna yang menjalankannya, menambahkan opsi baris perintah, memodifikasi dependensi… Alih-alih mengedit file secara manual di /lib/systemd/systemCara paling aman adalah menggunakan milikmu sendiri. systemctl untuk menghasilkan penggantian.
Perintah dasarnya adalah:
sudo systemctl edit nombre.service
Ini akan membuka editor default Anda dengan sebuah berkas fragmen kosongSaat Anda menyimpan dan keluar, systemd akan membuat direktori di /etc/systemd/system/nombre.service.d/ dan di dalam sebuah file override.confSaat memuat drive, systemd menggabungkan file asli dengan fragmen ini, dan arahan penggantian mereka memiliki prioritas pada berkas dasar tersebut.
Jika Anda ingin mengedit berkas drive lengkap Alih-alih menggunakan perintah override, Anda dapat melakukannya dengan:
sudo systemctl edit --full nombre.service
Dalam hal ini, apa yang Anda simpan akan ditulis ke /etc/systemd/system/nombre.serviceyang lebih diutamakan daripada versi sistem dalam /lib/systemd/systemIni adalah cara untuk "mengkloning" dan sepenuhnya menyesuaikan drive tanpa menyentuh file yang disertakan dalam paket tersebut.
Jika Anda kemudian memutuskan untuk membatalkan perubahan Anda, cukup hapus direktori .d dari penggantian atau file layanan yang dimodifikasi di /etc/systemd/system. Sebagai contoh:
sudo rm -r /etc/systemd/system/nginx.service.d
sudo rm /etc/systemd/system/nginx.service
Setelah menghapus item-item ini, sangat penting untuk menjalankan perintah berikut:
sudo systemctl daemon-reload
Hal ini memaksa sistem untuk Muat ulang semua file drive.Abaikan pengaturan penggantian yang telah dihapus dan kembali menggunakan definisi sistem asli.
Adaptasi target dan level runlevel
Los Target systemd adalah padanan modern dari runlevel. dari SysV. Itu adalah unit khusus (berakhir dengan .target) yang mengelompokkan unit-unit lain untuk mewakili “keadaan” atau titik sinkronisasi sistem.
Sebagai contoh:
- multi-pengguna.target: mode konsol multi-pengguna, khas untuk server tanpa lingkungan grafis.
- grafis.target: mode grafis; biasanya bergantung pada multi-user.target dan menambahkan lapisan antarmuka grafis.
- penyelamatan.target: mode penyelamatan, mirip dengan “mode pengguna tunggal”.
- tukar.target: titik di mana area pertukaran siap digunakan.
Unit dapat menyatakan hubungan seperti DiinginkanOleh=, DiperlukanOleh=, Keinginan=, Membutuhkan=, Setelah= dengan tujuan-tujuan ini untuk menunjukkan apa yang menjadi dasar pencapaiannya dan dalam urutan apa tujuan-tujuan tersebut harus dicapai.
Untuk tahu Apa tujuan yang telah ditentukan sebelumnya? dari sistem Anda (kondisi yang ingin Anda capai dalam proses booting normal), gunakan:
systemctl get-default
Misalnya, jika Anda lebih suka sistem selalu memulai dalam mode grafis, Anda dapat mengubahnya dengan:
sudo systemctl set-default graphical.target
Untuk melihat semua target yang terpasang pada sistem, beserta statusnya (diaktifkan, dinonaktifkan…), Anda dapat menjalankan perintah berikut:
systemctl list-unit-files --type=target
Dan jika yang Anda inginkan adalah melihat target mana yang aktif saat iniAnda melakukannya dengan:
systemctl list-units --type=target
Mengisolasi tujuan dan mengubah mode kerja
Salah satu hal paling ampuh yang ditawarkan systemd adalah kemampuannya untuk mengubah keadaan sistem dengan "mengisolasi" targetSaat Anda menjalankan isolasi, systemd mengaktifkan semua unit yang diperlukan untuk tujuan tersebut dan menghentikan unit yang tidak lagi sesuai dengan pohon dependensinya.
Bayangkan Anda berada di lingkungan grafis (aktif) grafis.targetdan Anda ingin beralih ke lingkungan multi-pengguna berbasis teks saja, misalnya untuk tugas pemeliharaan. Anda dapat terlebih dahulu memeriksa dependensi dari multi-user.target:
systemctl list-dependencies multi-user.target
Dan ketika Anda yakin tidak akan merusak sesuatu yang penting, Anda meluncurkannya:
sudo systemctl isolate multi-user.target
Karena graphical.target bergantung pada multi-user.target tetapi tidak sebaliknya, mengisolasi target multi-user akan menghentikannya. semua layanan yang terkait dengan lapisan grafismembuat Anda tetap dalam mode teks. Ini adalah perubahan yang cukup radikal, jadi gunakanlah dengan bijak.
Untuk kejadian yang sangat umum, systemctl menawarkan jalan pintas yang praktis dibandingkan dengan menulis secara terpisah dengan tangan. Beberapa yang paling umum digunakan adalah:
- sudo systemctl rescue: beralih ke mode penyelamatan (setara dengan mengisolasi rescue.target) dan memberi peringatan kepada pengguna yang terhubung.
- sudo systemctl halt: menghentikan sistem (mirip dengan mematikan CPU tanpa memutus aliran listrik).
- sudo systemctl matikanMatikan mesin sepenuhnya.
- sudo systemctl reboot: memulai ulang sistem.
Biasanya, perintah klasik seperti reboot, poweroff o halt Mereka terhubung secara internal untuk berkomunikasi dengan systemd, sehingga mereka berperilaku konsisten dengan pintasan-pintasan ini.
Perintah systemctl penting tambahan
Selain semua hal di atas, ada beberapa perintah untuk systemctl yang sebaiknya Anda simpan karena akan sering Anda gunakan saat bekerja dengan satuan:
Muat ulang konfigurasi systemd (bukan layanannya):
sudo systemctl daemon-reload
Setiap kali Anda memodifikasi atau menambahkan file drive, Anda perlu memberi tahu systemd agar dapat membacanya kembali. Perintah ini layanan tidak dimulai ulangIni hanya memuat ulang basis data unit.
Periksa status layanan beserta detailnya. (sudah dibahas):
sudo systemctl status nombre_servicio.service
Di sini Anda akan melihat status Loaded, Active, PID, uptime, dan pesan log terbaru, yang sangat berharga untuk mendebug kesalahan.
Aktifkan dan nonaktifkan layanan (juga terlihat):
sudo systemctl enable nombre_servicio.service
sudo systemctl disable nombre_servicio.service
Memulai, menghentikan, dan memulai ulang layanan. secara eksplisit:
sudo systemctl start nombre_servicio.service
sudo systemctl stop nombre_servicio.service
sudo systemctl restart nombre_servicio.service
Pola-pola ini berulang pada hampir semua layanan, mulai dari apache2, nginx atau ssh, hingga layanan dari database, setan kesan atau apa pun yang bisa Anda bayangkan.
Manajemen layanan: memulai, memuat ulang, menghentikan, dan memantau
Dalam situasi dunia nyata, Anda akan menggunakan Gunakan systemctl untuk menjaga agar layanan penting selalu berjalan dengan lancar.: server web, basis data, layanan jaringan, daemon backupdll. Idenya adalah untuk meminimalkan el tiempo dari kondisi tidak aktif dan menerapkan perubahan konfigurasi dengan dampak seminimal mungkin.
untuk memulai layanan Jika suatu layanan seharusnya aktif (misalnya, Apache), perintah yang umum digunakan adalah:
sudo systemctl start apache2
Jika Apache sudah berjalan, Anda tidak akan melihat sesuatu yang tidak biasa; jika dihentikan, daemon akan memulai proses anak dan mulai menangani permintaan. Kapan pun Anda tidak yakin apa yang terjadi, jalankan perintah berikut:
sudo systemctl status apache2
Saat Anda mengubah file konfigurasi utama atau beberapa hal lainnya tuan rumah virtual, Anda biasanya memuat ulang o reboot Layanan ini. Pengisian daya lebih lancar:
sudo systemctl reload apache2
Hal ini memungkinkan layanan untuk membaca ulang file konfigurasi tanpa menghentikan proses yang sedang berjalan, sehingga pengguna hampir tidak menyadari apa pun. Jika, karena alasan tertentu, layanan tidak mendukung pemuatan ulang, Anda perlu melakukan hal berikut:
sudo systemctl restart apache2
Dalam beberapa kasus, jika layanan mengalami masalah atau menjadi tidak responsif, reboot total mungkin diperlukan. Membebaskan sumber daya dan membersihkan proses zombie.Ini adalah salah satu langkah diagnostik standar sebelum menyelidikinya lebih lanjut. log di dalam.
untuk menghentikan layanan untuk sementara waktu karena Anda sedang melakukan perawatan atau karena Anda memang tidak membutuhkannya untuk sementara waktu:
sudo systemctl stop apache2
Itu tidak mencegahnya untuk dimulai ulang pada saat reboot berikutnya jika Anda mengaktifkannya. Jika Anda ingin itu hilang sepenuhnya hingga pemberitahuan lebih lanjut, Anda dapat menggabungkan stop dengan nonaktifkan masker o tergantung pada tingkat "larangan" yang ingin Anda terapkan.
Setelah operasi sensitif apa pun, sangat disarankan untuk melakukan hal ini. periksa status dari layanan tersebut dan catatan terbarunya dengan:
sudo systemctl status nombre_servicio
Dan, jika Anda membutuhkan konteks lebih lanjut, dengan journalctl, misalnya:
sudo journalctl -u nombre_servicio
Memecahkan masalah umum dengan systemctl
Ketika terjadi kesalahan saat memulai layanan dengan systemctlWajar jika melihat pesan seperti "Pekerjaan untuk X gagal" atau status lainnya. gagal dalam status keluar. Cara yang tertib untuk melanjutkan biasanya adalah:
1. Lihat status detail dari unit tersebut:
sudo systemctl status nombre_servicio
Di sana Anda akan melihat apakah layanan tidak dimulai karena kegagalan perintah, waktu habis, masalah izin, file yang hilang, dll. Perhatikan baris seperti "Main PID exited" dan pesan kesalahan sebenarnya dari aplikasi.
2. Tinjau catatan lengkapnya dengan journalctl:
sudo journalctl -u nombre_servicio
Ini memberi Anda riwayat log yang dihasilkan oleh unit tersebut, yang sangat berguna jika layanan "mati" tepat setelah dimulai.
3. Periksa apakah fitur tersebut diaktifkan. saat Anda mengharapkan perangkat tersebut untuk melakukan booting:
sudo systemctl is-enabled nombre_servicio
Jika terlihat dinonaktifkan, cukup lakukan hal berikut:
sudo systemctl enable nombre_servicio
4. Periksa izin dan pengguna.Beberapa layanan perlu dijalankan sebagai pengguna tertentu atau mengakses jalur tertentu. Jika file unit menentukan User= o Group= salah, atau rutenya di ExecStart= Jika data tersebut tidak ada atau tidak dapat diakses, layanan dapat langsung terhenti.
5. Jika Anda telah mengedit file drive secara manual, selalu ingat muat ulang konfigurasi systemd dengan:
sudo systemctl daemon-reload
Melupakan langkah ini adalah kesalahan klasik: Anda melakukan perubahan, memulai ulang layanan, dan masih melihat perilaku lama karena systemd belum membaca file baru.
Mempertahankan rutinitas pengecekan ini dan meninjau status unit-unit kunci secara berkala akan membuatnya jauh lebih mudah. Mempertahankan sistem Linux yang stabil dan dapat diprediksi..
Seperti yang kamu lihat, systemctl menjadi alat serbaguna untuk mengelola layanan, unit, dan status sistem. Pada distribusi Linux modern mana pun yang menggunakan systemd, Anda dapat memulai dan menghentikan daemon dengan tepat, mengontrol apa yang berjalan saat boot, menyelidiki bug secara detail, mengubah konfigurasi tanpa menimpa file sistem, dan beralih dari mode grafis ke mode penyelamatan dalam hitungan detik. Menguasai perintah-perintah ini tidak hanya membuat pengelolaan server atau desktop Linux jauh lebih mudah, tetapi juga memberi Anda kepercayaan diri yang lebih besar saat memecahkan masalah produksi yang serius, karena Anda tahu persis apa yang berjalan, mengapa, dan bagaimana cara menghentikan atau memodifikasinya dengan aman.
Penulis yang bersemangat tentang dunia byte dan teknologi secara umum. Saya suka berbagi ilmu melalui tulisan, dan itulah yang akan saya lakukan di blog ini, menunjukkan kepada Anda semua hal paling menarik tentang gadget, perangkat lunak, perangkat keras, tren teknologi, dan banyak lagi. Tujuan saya adalah membantu Anda menavigasi dunia digital dengan cara yang sederhana dan menghibur.