Rumah >Operasi dan penyelenggaraan >operasi dan penyelenggaraan linux >Bagaimanakah saya menguruskan perkhidmatan sistem dengan Systemd di Linux?

Bagaimanakah saya menguruskan perkhidmatan sistem dengan Systemd di Linux?

James Robert Taylor
James Robert Taylorasal
2025-03-11 17:34:03761semak imbas

Artikel ini menerangkan SystemD, sistem Linux Init, yang memberi tumpuan kepada pengurusan perkhidmatan menggunakan SystemCTL. Ia meliputi permulaan, berhenti, membolehkan, melumpuhkan, dan perkhidmatan penyelesaian masalah, termasuk analisis log melalui JournalCtl. Artikel ini juga memperincikan c

Bagaimanakah saya menguruskan perkhidmatan sistem dengan Systemd di Linux?

Menguruskan Perkhidmatan Sistem dengan Systemd di Linux

SystemD adalah sistem init yang digunakan oleh kebanyakan pengagihan Linux moden. Ia menguruskan kitaran sistem permulaan, berhenti, dan keseluruhan perkhidmatan sistem. Tidak seperti sistem init lama seperti Sysvinit, SystemD menawarkan pendekatan yang lebih canggih dan mantap, memanfaatkan ciri -ciri seperti pengurusan ketergantungan dan permulaan perkhidmatan selari. Menguruskan Perkhidmatan dengan SystemD melibatkan menggunakan alat baris arahannya, terutamanya systemctl . Memahami struktur unit sistem (fail yang menerangkan perkhidmatan, sasaran, dan komponen sistem lain) adalah penting untuk pengurusan yang berkesan. Unit -unit ini biasanya terletak di /etc/systemd/system/ dan direktori lain yang berkaitan. Unit -unit itu sendiri biasanya ditulis dalam bahasa konfigurasi yang mudah, menjadikannya mudah difahami dan diubah suai. Akhirnya, SystemD menyediakan mekanisme pembalakan yang mantap, membuat penyelesaian masalah lebih mudah daripada dengan sistem init yang lebih tua.

Perintah sistem biasa untuk memulakan, menghentikan, dan membolehkan perkhidmatan

Perintah utama untuk berinteraksi dengan SystemD adalah systemctl . Berikut adalah beberapa arahan biasa untuk mengurus perkhidmatan:

  • Memulakan Perkhidmatan: systemctl start <service_name></service_name> . Sebagai contoh, untuk memulakan perkhidmatan SSH, anda akan menggunakan systemctl start ssh . Perintah ini memulakan perkhidmatan jika ia belum berjalan.
  • Menghentikan Perkhidmatan: systemctl stop <service_name></service_name> . Perintah ini dengan anggun menghentikan perkhidmatan yang ditentukan.
  • Mulakan semula perkhidmatan: systemctl restart <service_name></service_name> . Perintah ini berhenti dan kemudian memulakan perkhidmatan. Berguna untuk menggunakan perubahan konfigurasi atau pulih daripada isu -isu kecil.
  • Mengaktifkan Perkhidmatan: systemctl enable <service_name></service_name> . Perintah ini memastikan perkhidmatan bermula secara automatik pada masa boot. SystemD mencipta pautan simbolik untuk meletakkan unit perkhidmatan dalam direktori runlevel yang sesuai.
  • Melumpuhkan perkhidmatan: systemctl disable <service_name></service_name> . Perintah ini menghilangkan pautan simbolik, menghalang perkhidmatan dari bermula secara automatik pada boot.
  • Memeriksa Status Perkhidmatan: systemctl status <service_name></service_name> . Perintah ini memaparkan status semasa Perkhidmatan, termasuk PID (ID Proses), keadaan aktif, dan mana -mana log baru -baru ini. Ia memberikan maklumat terperinci mengenai kesihatan perkhidmatan.
  • Menyenaraikan semua perkhidmatan aktif: systemctl list-units --type=service . Perintah ini menyenaraikan semua perkhidmatan yang sedang berjalan. Anda boleh menambah --state=running to Filter untuk hanya perkhidmatan berjalan.

Penyelesaian Masalah Kegagalan Perkhidmatan Sistem dan Melihat Log mereka

Apabila perkhidmatan SystemD gagal, beberapa alat membantu dalam menyelesaikan masalah:

  • systemctl status <service_name></service_name> : Seperti yang dinyatakan sebelum ini, perintah ini sangat penting. Ia memberikan maklumat mengenai keadaan perkhidmatan, termasuk mesej ralat jika ada yang berlaku semasa permulaan atau runtime. Perhatikan status "gagal" atau "tidak aktif (mati)" dan mesej ralat berikutnya.
  • JournalCTL: Perintah journalctl adalah alat utama untuk melihat log sistem. Ia membolehkan anda menapis log berdasarkan nama perkhidmatan, masa, dan kriteria lain. Contohnya:

    • journalctl -u <service_name></service_name> : Menunjukkan log khusus untuk perkhidmatan yang ditentukan.
    • journalctl -u <service_name> -xe</service_name> : Menunjukkan mesej ralat terkini untuk perkhidmatan tersebut.
    • journalctl -u <service_name> -f</service_name> : Mengikuti output log dalam masa nyata. Berguna untuk memerhatikan tingkah laku perkhidmatan semasa penyelesaian masalah.
  • Memeriksa Fail Konfigurasi Perkhidmatan: Semak fail unit perkhidmatan (biasanya terletak di /etc/systemd/system/ ) untuk sebarang kesilapan sintaks atau konfigurasi yang salah.

Membuat dan Menguruskan Perkhidmatan Systemd Custom Saya Sendiri

Mewujudkan perkhidmatan SystemD tersuai melibatkan membuat fail unit yang menerangkan perkhidmatan. Fail -fail ini biasanya mempunyai lanjutan .service . Berikut adalah contoh asas fail perkhidmatan:

 <code class="ini">[Unit] Description=My Custom Service After=network.target [Service] Type=simple User=myuser Group=mygroup ExecStart=/path/to/my/script.sh Restart=always RestartSec=5 [Install] WantedBy=multi-user.target</code>
  • [Unit] Seksyen: Mengandungi metadata mengenai perkhidmatan, termasuk keterangan dan kebergantungannya.
  • [Service] Seksyen: Menentukan bagaimana perkhidmatan dijalankan, termasuk arahan untuk melaksanakan ( ExecStart ), pengguna dan kumpulan untuk menjalankannya sebagai, dan memulakan semula dasar.
  • [Install] Bahagian: Menentukan di mana perkhidmatan harus diletakkan dalam hierarki sistem.

Selepas membuat fail ini (misalnya, /etc/systemd/system/mycustomservice.service ), anda perlu:

  1. Muat semula Systemd: systemctl daemon-reload
  2. Dayakan Perkhidmatan: systemctl enable mycustomservice
  3. Mulakan Perkhidmatan: systemctl start mycustomservice
  4. Semak status perkhidmatan: systemctl status mycustomservice

Ingatlah untuk menggantikan ruang letak seperti /path/to/my/script.sh , myuser , dan mygroup dengan nilai sebenar anda. Menetapkan dengan betul pengguna dan kumpulan adalah penting untuk keselamatan. Restart=always dan RestartSec=5 Pilihan Pastikan perkhidmatan dimulakan semula secara automatik jika ia terhempas, menunggu 5 saat sebelum cuba memulakan semula. Sentiasa menguji perkhidmatan tersuai anda dengan teliti sebelum menggunakannya ke persekitaran pengeluaran.

Atas ialah kandungan terperinci Bagaimanakah saya menguruskan perkhidmatan sistem dengan Systemd di Linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn