Mulai ulang Layanan menggunakan Perintah systemctl restart

Mulai Ulang Layanan Menggunakan Perintah Systemctl Restart



Itu sistemd adalah manajer layanan sistem yang banyak digunakan di Linux. Untuk mengelola sistemd layanan, itu sistemctl utilitas baris perintah digunakan. Alat ini juga digunakan untuk memulai ulang layanan systemd apa pun.

Layanan di Linux dikelola melalui file konfigurasinya. Jika modifikasi dilakukan pada file konfigurasi layanan, layanan perlu dimulai ulang untuk menerapkan modifikasi. Setelah memulai ulang layanan, systemd mengevaluasi ulang file konfigurasi dan menerapkan modifikasi.

Dalam panduan ini, saya akan membahas cara menggunakan systemctl untuk memulai ulang layanan di Linux.







Catatan: Panduan ini mencakup perintah dan instruksi yang dijalankan di Ubuntu 22.04. Perintah ini akan bekerja tanpa masalah apa pun pada distribusi yang disertakan dengan manajer layanan systemd.



Perintah systemctl restart

Itu mengulang kembali perintah pada dasarnya menghentikan layanan dan memulainya lagi. Jika layanan atau unit tidak beroperasi, perintah restart akan memulai operasinya.



Perintah restart tidak menghapus proses yang terkait dengan layanan. Ambil contoh deskriptor file, yang merupakan pengidentifikasi non-negatif yang ditetapkan oleh sistem operasi untuk file yang dibuka oleh suatu layanan. Jika Anda memulai ulang layanan, deskriptor file yang ditautkan ke layanan tersebut akan tetap ada selama proses mulai ulang.





Jika Anda ingin menghapus semua proses yang tertaut ke layanan, maka Anda perlu melakukannya secara eksplisit berhenti layanan dan awal itu lagi.

Cara Memulai Ulang Layanan

Di Linux, Anda dapat memulai ulang layanan dengan menggunakan sudo systemctl alat baris perintah dengan mengulang kembali pilihan dan menentukan namanya. Sintaks umum diberikan di bawah ini:



sudo sistemctl restart [ Nama layanan ]

Anda akan perlu sudo hak istimewa untuk memulai kembali layanan.

Misalnya, mari kita mulai ulang ssh melayani.

sudo systemctl restart ssh.layanan

Untuk memulai ulang beberapa layanan, tambahkan setiap nama layanan setelahnya mengulang kembali perintah dengan spasi.

sudo systemctl mulai ulang ssh.service smbd.service

Perintah restart lainnya diberikan pada tabel di bawah ini:

coba mulai ulang Ini menghentikan atau memulai layanan atau layanan tertentu dan jika layanan tidak berjalan, layanan tersebut tidak akan memulainya
muat ulang-atau-mulai ulang Muat ulang layanan atau layanan yang didukung dan jika layanan tersebut tidak didukung, mulai ulang dan aktifkan
coba-muat ulang-atau-coba-mulai ulang Muat ulang layanan atau layanan yang didukung dan jika layanan tidak didukung, mulai ulang tanpa mengaktifkannya

Dalam perintah di atas, .melayani ekstensi adalah opsional.

Cara Memulai Ulang Layanan Secara Otomatis

Di Linux, jika suatu layanan gagal, maka sistemd memulai ulang secara default. Meskipun demikian, dalam banyak kasus, mungkin perlu mengubah cara layanan dimulai ulang. Misalnya, seseorang mungkin memerlukan tindakan manual selama proses debugging layanan yang dibuat khusus.

File unit systemd atau file layanan berada di /etc/systemd/system atau /lib/systemd/system terutama tergantung pada bagaimana layanan dibuat. Untuk membuat daftar file unit di Linux, gunakan perintah berikut:

aku / lib / sistemd / sistem

Anda dapat melihat file konfigurasi berbagai layanan. Mari kita buka ssh.service file menggunakan nano editor.

sudo nano / lib / sistemd / sistem / ssh.service

Di sini Anda dapat memodifikasi Mengulang kembali pengaturan. Secara default, ini diatur ke pada kegagalan . Opsi lain untuk memulai ulang layanan tercantum di bawah ini:

  • TIDAK
  • selalu
  • pada-sukses
  • pada kegagalan
  • pada-tidak normal
  • di-batalkan
  • di-anjing penjaga

Pilihan lain dalam file layanan unit adalah Mulai UlangSec yang digunakan untuk menentukan jumlah detik setelah layanan akan dimulai ulang.

[ Melayani ]

Mengulang kembali =selalu

Mulai UlangSec = 5

Petunjuk ini berarti bahwa layanan akan dimulai ulang saat boot dan, jika terputus, akan dimulai ulang setelah 5 detik.

Setelah mengubah pengaturan, jalankan perintah berikut untuk menerapkan perubahan.

sudo systemctl reload-daemon

Pengaturan penting lainnya yang perlu dipertimbangkan adalah MulaiLimitIntervalSec Dan MulaiBatas Meledak . Opsi ini berguna untuk mengatur waktu maksimum dan percobaan ulang maksimum untuk memulai ulang layanan.

[ Satuan ]

MulaiLimitIntervalSec = 300

MulaiBatas Meledak = 4

Instruksi di atas menunjukkan bahwa systemd akan secara otomatis berhenti mencoba memulai ulang layanan jika tidak dimulai setelah 300 detik dan 4 kali percobaan ulang.

Untuk memverifikasi apakah layanan dimulai ulang setelah 5 detik atau tidak, matikan layanan menggunakan PID layanan dan membunuh memerintah.

sudo membunuh -9 [ PID ]

Setelah 5 detik, layanan akan dimulai ulang; menggunakan jurnalctl perintah untuk memeriksa status ssh.service .

jurnalctl -di dalam ssh.service

Cara Memulai Ulang Layanan ketika Layanan Dependen Dimulai Ulang

Di Linux, banyak layanan yang saling bergantung, dan sama halnya, layanan tersebut harus di-restart ketika layanan yang bergantung di-restart.

Ada tiga opsi berbeda dalam file layanan unit untuk memulai ulang layanan, dengan layanan dependen dimulai ulang.

  • Bagian dari
  • Terikat pada
  • Memerlukan

Semua opsi ini melakukan tugas yang sama.

Mari kita ambil contoh ssh.service yang bergantung pada apparmor.service; Modul Keamanan Linux untuk menyediakan akses yang diperlukan. Untuk membuat daftar dependensi layanan di penggunaan Linux sistemctl dengan daftar-dependensi nama perintah dan layanan.

systemctl daftar-dependensi ssh.service

Jadi, jika Anda ingin me-restart ssh.service saat Anda me-restart apparmor.service, maka Anda perlu menyertakan opsi PartOf, BindsTo, atau Requires bersama dengan nama layanan di bagian [Unit] pada file apparmor.service.

Buka file apparmor.service.

sudo nano / lib / sistemd / sistem / apparmor.service

Tambahkan baris berikut di bagian [Unit].

Bagian dari =ssh.service

Simpan file dan jalankan perintah daemon-reload.

sudo systemctl daemon-reload

Sekarang, mulai ulang ssh.service lalu periksa apparmor.service catatan.

Anda akan melihat apparmor.service dimulai ulang pada saat yang sama ssh.service dimulai ulang.

Kesimpulan

Untuk memulai ulang suatu layanan atau services di Linux, sistemctl perintah digunakan dengan mengulang kembali pilihan. Itu sistemctl adalah utilitas baris perintah yang digunakan untuk mengelola layanan systemd. Itu mengulang kembali opsi memulai layanan dan kemudian menghentikannya, mengaktifkan layanan yang tidak aktif. Namun, Anda dapat memulai ulang layanan tanpa mengaktifkannya dengan menggunakan coba mulai ulang pilihan.