Mulakan semula Perkhidmatan menggunakan Systemctl restart Command

Mulakan Semula Perkhidmatan Menggunakan Systemctl Restart Command



The sistemd ialah pengurus perkhidmatan sistem yang digunakan secara meluas di Linux. Untuk menguruskan sistemd perkhidmatan, yang systemctl utiliti baris arahan digunakan. Alat ini juga digunakan untuk memulakan semula sebarang perkhidmatan systemd.

Perkhidmatan di Linux diuruskan melalui fail konfigurasi mereka. Jika pengubahsuaian dibuat pada fail konfigurasi perkhidmatan, adalah perlu untuk memulakan semula perkhidmatan untuk menggunakan pengubahsuaian. Setelah memulakan semula perkhidmatan, systemd menilai semula fail konfigurasi dan menggunakan pengubahsuaian.

Dalam panduan ini, saya akan membincangkan cara menggunakan systemctl untuk memulakan semula perkhidmatan dalam Linux.







Catatan: Panduan ini termasuk arahan dan arahan yang dilaksanakan pada Ubuntu 22.04. Arahan akan berfungsi tanpa sebarang masalah pada pengedaran yang disertakan dengan pengurus perkhidmatan systemd.



Systemctl memulakan semula Perintah

The mula semula perintah pada dasarnya menghentikan perkhidmatan dan memulakannya semula. Jika perkhidmatan atau unit tidak beroperasi, arahan mulakan semula akan memulakan operasinya.



Perintah mulakan semula tidak mengalih keluar proses yang dikaitkan dengan perkhidmatan. Ambil contoh deskriptor fail, yang merupakan pengecam bukan negatif yang diberikan oleh sistem pengendalian kepada fail yang dibuka oleh perkhidmatan. Jika anda memulakan semula perkhidmatan, deskriptor fail yang dipautkan kepada perkhidmatan itu akan kekal di sana semasa proses mulakan semula.





Jika anda ingin membuang semua proses yang dipautkan kepada perkhidmatan, maka anda perlu secara eksplisit berhenti perkhidmatan dan mulakan ia sekali lagi.

Cara Memulakan Semula Perkhidmatan

Di Linux, anda boleh memulakan semula perkhidmatan dengan menggunakan sudo systemctl alat baris arahan dengan mula semula pilihan dan menyatakan namanya. Sintaks umum diberikan di bawah:



sudo systemctl mulakan semula [ nama perkhidmatan ]

Anda perlu sudo keistimewaan untuk memulakan semula perkhidmatan.

Sebagai contoh, mari mulakan semula ssh perkhidmatan.

sudo systemctl mulakan semula ssh.service

Untuk memulakan semula berbilang perkhidmatan, tambahkan setiap nama perkhidmatan selepas mula semula perintah dengan ruang.

sudo systemctl mulakan semula ssh.service smbd.service

Perintah restart lain diberikan dalam jadual di bawah:

cuba-mulakan semula Ia menghentikan atau memulakan perkhidmatan atau perkhidmatan yang ditentukan dan jika perkhidmatan tidak berjalan ia tidak memulakannya
muat semula-atau-mulakan semula Muat semula perkhidmatan atau perkhidmatan yang disokong dan jika perkhidmatan itu tidak disokong, mulakan semula dan aktifkannya
cuba-muat semula-atau-cuba-mulakan semula Muat semula perkhidmatan atau perkhidmatan yang disokong dan jika perkhidmatan itu tidak disokong maka mulakan semula tanpa mengaktifkannya

Dalam arahan di atas, yang .perkhidmatan sambungan adalah pilihan.

Cara Memulakan Semula Perkhidmatan Secara Automatik

Di Linux, jika perkhidmatan gagal, maka sistemd memulakan semula secara lalai. Walau bagaimanapun, dalam banyak kes, mungkin perlu mengubah suai cara perkhidmatan dimulakan semula. Sebagai contoh, seseorang mungkin memerlukan tindakan manual semasa proses penyahpepijatan perkhidmatan yang dibuat tersuai.

Fail unit systemd atau fail perkhidmatan terletak pada /etc/systemd/system atau /lib/systemd/system terutamanya bergantung pada cara perkhidmatan dicipta. Untuk menyenaraikan fail unit pada Linux, gunakan arahan berikut:

ls / lib / sistemd / sistem

Anda boleh melihat fail konfigurasi perkhidmatan yang berbeza. Mari buka ssh.service fail menggunakan nano editor.

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

Di sini anda boleh mengubah suai Mula semula tetapan. Secara lalai, ia ditetapkan kepada pada-kegagalan . Pilihan lain untuk memulakan semula perkhidmatan disenaraikan di bawah:

  • Tidak
  • sentiasa
  • pada-kejayaan
  • pada-kegagalan
  • pada-abnormal
  • pada-menggugurkan kandungan
  • badan pemerhati

Pilihan lain dalam fail perkhidmatan unit ialah Mulakan semulaSec yang digunakan untuk menentukan bilangan saat selepas itu perkhidmatan akan dimulakan semula.

[ Perkhidmatan ]

Mula semula =selalu

Mulakan semulaSec = 5

Arahan ini bermakna perkhidmatan akan dimulakan semula semasa but dan, jika terganggu, akan dimulakan semula selepas 5 saat.

Selepas mengubah suai tetapan, laksanakan arahan berikut untuk menggunakan perubahan.

sudo systemctl muat semula-daemon

Tetapan penting lain yang perlu diambil kira ialah StartLimitIntervalSec dan StartLimitBurst . Pilihan ini berguna untuk menetapkan masa maksimum dan percubaan semula maksimum untuk memulakan semula perkhidmatan.

[ Unit ]

StartLimitIntervalSec = 300

StartLimitBurst = 4

Arahan di atas menunjukkan bahawa systemd secara automatik akan berhenti mencuba untuk memulakan semula perkhidmatan jika ia tidak bermula selepas 300 saat dan 4 percubaan semula.

Untuk mengesahkan sama ada perkhidmatan dimulakan semula selepas 5 saat atau tidak, matikan perkhidmatan menggunakan PID perkhidmatan dan bunuh perintah.

sudo bunuh -9 [ PID ]

Selepas 5 saat, perkhidmatan akan dimulakan semula; menggunakan journalctl arahan untuk menyemak status ssh.service .

journalctl -dalam ssh.service

Cara Memulakan Semula Perkhidmatan apabila Perkhidmatan Tanggungan Dimulakan Semula

Di Linux, banyak perkhidmatan saling bergantung, dan begitu juga, mereka perlu dimulakan semula apabila perkhidmatan bergantung dimulakan semula.

Terdapat tiga pilihan berbeza dalam fail perkhidmatan unit untuk memulakan semula perkhidmatan, dengan perkhidmatan bergantung dimulakan semula.

  • Sebahagian daripada
  • BindsTo
  • Memerlukan

Semua pilihan ini melaksanakan tugas yang sama.

Mari kita ambil contoh ssh.service yang bergantung pada apparmor.service; Modul Keselamatan Linux untuk menyediakan akses yang diperlukan. Untuk menyenaraikan kebergantungan perkhidmatan dalam penggunaan Linux systemctl dengan kebergantungan senarai arahan dan nama perkhidmatan.

systemctl list-dependencies ssh.service

Jadi, jika anda ingin memulakan semula ssh.service apabila anda memulakan semula apparmor.service, maka anda perlu memasukkan pilihan PartOf, BindsTo, atau Requires bersama-sama dengan nama perkhidmatan dalam bahagian [Unit] pada fail apparmor.service.

Buka fail apparmor.service.

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

Tambahkan baris berikut dalam bahagian [Unit].

Sebahagian daripada =ssh.service

Simpan fail dan laksanakan arahan daemon-reload.

sudo systemctl daemon-reload

Sekarang, mulakan semula ssh.service dan kemudian semak apparmor.service log.

Anda akan perasan apparmor.service dimulakan semula pada masa yang sama ssh.service dimulakan semula.

Kesimpulan

Untuk memulakan semula perkhidmatan atau perkhidmatan pada Linux, systemctl arahan digunakan dengan mula semula pilihan. The systemctl ialah utiliti baris arahan yang digunakan untuk mengurus perkhidmatan systemd. The mula semula pilihan memulakan perkhidmatan dan kemudian menghentikannya, mengaktifkan perkhidmatan tidak aktif. Walau bagaimanapun, anda boleh memulakan semula perkhidmatan tanpa mengaktifkannya dengan menggunakan cuba-mulakan semula pilihan.