Төлем әдістері Abuse

Linux қызметін автоматты түрде қайта қосу әдісі

26.02.2021, 20:42

Қызмет көрсетудің өздігінен төмендеуі жиі орын алады. Пайдаланушы оларды қолмен қалпына келтіруі керек. Бұл үйдегі компьютерде орын алса, ешқандай проблема болмайды. Одан да жақсы, өйткені қызмет жағдайын анықтауға, ақауларды анықтауға және оларды жоюға нақты мүмкіндік бар. Бірақ веб-сайтқа немесе қолданбаға кіруді қамтамасыз ету үшін үнемі жұмыс істеп тұруы керек серверлер мен VPS қызметтеріне қатысты жағдай мүлдем басқаша. Бұл мақалада біз Linux қызметін автоматты түрде қайта қосуды конфигурациялауды бірнеше жолмен қарастырамыз: cron және systemd арқылы мерзімді түрде іске қосылатын бақылау сценарийін пайдалану.

Systemd жүйесінде автоматты қайта іске қосу

Әдепкі бойынша, егер қызмет істен шықса, Systemd онымен ештеңе істемейді деп орнатылған. Бірақ пайдаланушы әрқашан параметрлерді бұзылған немесе тоқтаған жағдайда қызмет автоматты түрде қайта іске қосылатын етіп конфигурациялай алады. Ол үшін Қызмет бөліміне қосылуы керек Restart директивасын пайдаланыңыз. Әрі қарай, Apache қызметін автоматты түрде қайта іске қосуды орнату мысалын қарастырайық:

$ sudo systemctl edit apache2 [Service] Restart=on-failure RestartSec=5s

Apache қызметін автоматты түрде қайта қосуды орнату:

Мұнда RestartSec қызметті қайта іске қоспас бұрын қанша уақыт күту керектігін көрсетеді. Аяқтаған кезде өзгертулерді сақтаңыз және конфигурацияны қайта оқу үшін demon-reload пәрменін іске қосыңыз:

 $ sudo systemctl daemon-reload

Әрі қарай, бәрі дұрыс жұмыс істеп тұрғанын тексеру үшін процестің күйін қараңыз, процесті өлтіру сигналымен аяқтаңыз:

 $ sudo systemctl status apache2 $ kill -KILL 32091

Өлдіру сигналы бар процесс

Күйді қайта тексеріңіз, процесс іске қосылуы керек. Баптандыруды әр уақытта іске қосу үшін орнату үшін арнайы Restart: always директивасын пайдаланыңыз. Бірақ оны өте мұқият пайдалану керек, өйткені ол қажет болса да, процесті аяқтауға мүмкіндік бермейді. Егер процесс қайта іске қосылуы үшін үнемі бұзылса, Қызмет бөлімінде қайта қосулар санына шектеу қосуға болады:

 $ sudo systemctl edit apache2 [Service] StartLimitIntervalSec=500 StartLimitBurst=5 Restart=on-failure RestartSec=5s

Қызмет бөліміндегі қайта қосулар санына шектеу қойыңыз

Мұнда StartLimitBurst және StartLimitIntervalSec қызметтерді бес рет қайта қосудың маңыздылығын көрсетеді және егер ол осы бес рет бұзылса, оны қалдырыңыз және оған қол тигізбеңіз. Екінші директива қызметті қайта қосу уақытын 500 секундқа шектейді.

Скрипт бойынша автоматты қайта қосу

Linux жүйесінің барлық нұсқаларында жұмыс істейтін ең сенімді және ақаусыз әдіс. Apache-де сценарий арқылы автоматты қайта қосуды орнату оңай. Ол үшін пәрменді енгізу керек:

 $ sudo vi /usr/local/bin/apache-monitor.sh #!/bin/bash ps -A | grep apache2 || systemctl start apache2

Файл сақталуы керек және оны орындалатын етіп жасау керек:

 chmod ugo+x /usr/local/bin/apache-monitor.sh

Сценарийді мерзімді түрде іске қосу үшін cron жазбасын қосуды ұмытпаңыз:

 $ sudo crontab -e */5 * * * * /usr/local/bin/apache-monitor.sh

Бар болғаны. Иә, қызметті автоматты түрде қайта қосуды орнату бірінші көзқараста көрінетіндей оңай емес. Бірақ бұл маңызды қабілет, сондықтан оған назар аудару керек - бұл сөзсіз тұрарлық.