- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Как запустить, остановить и перезапустить сервисы в Linux
- Базовый синтаксис команды systemctl
- Как проверить, работает ли служба в Linux
- Как перезапустить сервис
- Как перезагрузить конфигурационные файлы сервиса
- Как запустить сервис
- Как остановить сервис
- Как включить сервис при загрузке
- Как отключить сервис при загрузке
- Полезно?
- Почему?
- Как перезапустить зависший процесс?
- Как перезапускать программу ?
- Как перезапускать программу ?
- Как перезапускать программу ?
- Как перезапускать программу ?
- Как перезапускать программу ?
- Как перезапускать программу ?
- Как перезапускать программу ?
- Re: Как перезапускать программу ?
- Как перезапускать программу ?
- Как перезапустить (или сбросить) запущенный процесс в linux
- Как запускать, останавливать или перезапускать сервисы в Ubuntu
- Использование Systemd для запуска / остановки / перезапуска служб в Ubuntu
- Запуск / остановка / перезапуск сервисов в Ubuntu с помощью команды service
- Использование скриптов Init для управления сервисами в Ubuntu
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Как запустить, остановить и перезапустить сервисы в Linux
Start — Stop — Restart — Reload
3 минуты чтения
Linux обеспечивает детальный контроль над системными службами через systemd с помощью команды systemctl. Службы могут быть включены, выключены, перезапущены, перезагружены или даже включены или отключены при загрузке. Если вы используете Debian, CentOSили Ubuntu, ваша система, вероятно, использует systemd.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Это руководство покажет вам, как использовать основные команды для запуска, остановки и перезапуска служб в Linux.
Базовый синтаксис команды systemctl
Основной синтаксис для использования команды systemctl:
Как правило, вам нужно запускать это как суперпользователь поэтому команды будут начинаться с sudo.
Как проверить, работает ли служба в Linux
Чтобы проверить, активна ли служба или нет, выполните следующую команду:
Замените SERVICE_NAME на нужный сервис.
В нашем случае мы будем брать за пример веб-сервер Apache.
Интересный факт: в Ubuntu и других дистрибутивах на основе Debian служба Apache называется apache2. В CentOS и других дистрибутивах RedHat служба Apache называется httpd или httpd.service
Так мы проверили состояние Apache. Выходные данные показывают, что служба активна (работает), как на рисунке ниже:
Как перезапустить сервис
Чтобы остановить и перезапустить службу в Linux, используйте команду:
Где SERVICE_NAME — имя вашего сервиса.
После выполнения команды ваш сервис должен снова заработать. Вы можете проверить состояние с помощью команды status
Для перезапуска нашего сервера Apache используем:
Как перезагрузить конфигурационные файлы сервиса
Чтобы служба перезагрузила свои файлы конфигурации, введите в терминале следующую команду:
После перезагрузки проверьте ее состояние командой status для подтверждения.
В нашем примере мы перезагрузили Apache, используя:
Как запустить сервис
Чтобы запустить службу в Linux вручную, введите в терминале следующее:
Например, команда для запуска службы Apache:
Как остановить сервис
Чтобы остановить активную службу в Linux, используйте следующую команду:
Для нашего апача используем команду
Проверьте, остановился ли сервис с помощью команды status . Вывод должен показать, что сервис неактивен — inactive (dead)
Как включить сервис при загрузке
Чтобы настроить службу для запуска при загрузке системы, используйте команду:
Чтобы включить Apache при загрузке системы, выполните команду:
Как отключить сервис при загрузке
Вы можете запретить запуск службы при загрузке с помощью команды:
Мини — курс по виртуализации
Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена
Полезно?
Почему?
😪 Мы тщательно прорабатываем каждый фидбек и отвечаем по итогам анализа. Напишите, пожалуйста, как мы сможем улучшить эту статью.
😍 Полезные IT – статьи от экспертов раз в неделю у вас в почте. Укажите свою дату рождения и мы не забудем поздравить вас.
Источник
Как перезапустить зависший процесс?
Задача: Консольная прога непрерывно выводит результаты своей работы. Раз в N сек среди разных других строк должно появляться определенное сообщение. (В этой строке появляется слово, которого не бывает в других.) Если оно не появилось (а другие строки сыпятся) — надо перезапустить прогу. Исходники слишком громоздкие для меня, слишком долго буду разбираться. Можно ли это сделать на bash или надо что-то мощнее? perl, например? 20 лет назад ковырялся в freefsd, но все уже стерлось в памяти. Поможете. Буду крайне признателен.
Если упорное и не прибивается, тогда можно пожёсче:
Но второе не очень рекомендуется.
Послать надо SIGHUP Сигнал SIGHUP (номер 1) изначально был предназначен для того, чтобы информировать программу о потере связи с управляющим терминалом (терминалы часто подключались к системе с помощью модемов, так что название сигнала происходит от hung up – повесить трубку). Сигнал SIGHUP посылается приложению так же и в том случае, если процесс-лидер сессии завершил свою работу. Многие программы-демоны, у которых нет лидера сессии, так же обрабатывают этот сигнал. В ответ на получение SIGHUP демон обычно перезапускается (или просто повторно читает файл конфигурации). По умолчанию программа, получившая этот сигнал, завершается.
Смотри man kill Killall [имя программы] -HUP
По умолчанию программа, получившая этот сигнал, завершается.
Хм. Вот честно, ни разу не встречал такого поведения. В худшем случае не реагируют никак, в лучшем — перечитывают конфигурацию и продолжают работать.
По умолчанию программа, получившая сигнал [HUP], завершается.
Хм. Вот честно, ни разу не встречал такого поведения.
Очень странно. Тут даже не поймешь, какой пример лучше привести — они почти все себя так ведут: bash(1), emacs(1), cp(1) и так далее.
В худшем случае не реагируют никак
Источник
Как перезапускать программу ?
Каким образом в Linux правильно реализовать перезапуск программы после вылета по ошибке ? В ДОС я бы написал bat: :loop programm goto loop
А как грамотно это сделать в Linux ?
Как перезапускать программу ?
Аналог того, что выше — while :; do program; done
Как перезапускать программу ?
while true; do program; done;
Как перезапускать программу ?
for ((;;)); do program; done
Как перезапускать программу ?
until false;do program;done
Как перезапускать программу ?
Правильнее всего вот так:
(defun forever ()
(progn
(run-shell-command «твоя программа»)
(forever)))
(forever)
Как перезапускать программу ?
yes | xargs -n1 proga
Re: Как перезапускать программу ?
>yes | xargs -n1 proga
ls: cannot access y: No such file or directory
ls: cannot access y: No such file or directory
ls: cannot access y: No such file or directory
ls: cannot access y: No such file or directory
ls: cannot access y: No such file or directory
ls: cannot access y: No such file or directory
ls: cannot access y: No such file or directory
ls: cannot access y: No such file or directory
ls: cannot access y: No such file or directory
ls: cannot access y: No such file or directory
ls: cannot access y: No such file or directory
ls: cannot access y: No such file or directory
ls: cannot access y: No such file or directory
ls: cannot access y: No such file or directory
Не слушай советчиков, с defun получается оптимальнее.
Как перезапускать программу ?
> ls: cannot access y: No such file or directory
но она же запускается!
> ls: cannot access y: No such file or directory
> ls: cannot access y: No such file or directory
Источник
Как перезапустить (или сбросить) запущенный процесс в linux
Сделайте так, чтобы ваш компьютер с Windows 10 загружался и работал быстрее
У меня есть две системы Linux, которые обмениваются данными через сокеты (настольный компьютер и плата разработки на базе ARM).
Я хочу перезапустить (или сбросить) мое клиентское приложение (работающее на плате разработки), когда сервер отправляет определенное предопределенное сообщение. Я не хочу перезапускать (перезагружать) Linux, я просто хочу, чтобы это клиентское приложение перезапустилось автоматически.
Я не могу понять, как это нужно делать.
Обычный способ сделать это — позволить программе выйти и перезапустить ее с помощью системы мониторинга. В init программа предлагает такую систему мониторинга. Существует множество различных программ инициализации (SysVinit, BusyBox, Systemd и т. Д.) С совершенно разными механизмами конфигурации (всегда записывается файл конфигурации, но расположение и синтаксис файла различаются), поэтому поищите документацию к той, которую вы Использую. Настройте init для запуска вашей программы во время загрузки или по явному запросу и для перезапуска, если она умирает. Существуют также более интересные программы мониторинга, но, похоже, они вам не нужны. Этот подход имеет много преимуществ по сравнению с перезапуском программы самостоятельно: он стандартный, поэтому вы можете перезапустить несколько служб, не заботясь о том, как они созданы; он работает, даже если программа умирает из-за ошибки.
Есть стандартный механизм, который сообщает процессу о завершении: сигналы. Отправьте вашей программе сигнал TERM. Если вашей программе необходимо выполнить какую-либо очистку, напишите обработчик сигнала. Это не исключает наличия специальной команды для ее выключения, если у вас есть административный канал для отправки ей подобных команд.
Сделайте своего клиента исполнительным /proc/self/exe когда он получает это типичное сообщение. Вам не нужно знать, где на самом деле находится исполняемый файл в файловой системе. И вы можете повторно использовать main() с argv для построения нового вектора аргументов.
Этот restart.c работает так:
Если клиентское приложение является службой Linux, его можно перезапустить с помощью этой команды:
или принудительно перезагрузить его конфигурацию:
Если, что более вероятно, это настраиваемое приложение, ему необходимо встроить в свой код функцию, чтобы перезапустить себя или перезагрузить свою конфигурацию при получении сигнала или события. Если этого не сделать, в крайнем случае вы всегда можете убить клиентское приложение:
и снова перезапустите, но это некрасиво, поскольку оно оставляет приложение в неопределенном состоянии.
- 1 Если приложение уже не находится в фиктивном состоянии, -9 аргумент pkill не требуется, неиспользование должно позволить приложению полностью остановиться.
- @ dr01 Если приложение не является сервисом, то как его перезапустить?
- @SaadRafey: это написано в моем ответе, возможность перезапуска себя чисто или перезагрузить конфигурацию должна быть прописана в коде.
- Я думаю, это работает только со СТАРЫМИ версиями UBUTNU
- @noone Вовсе нет, это стандартная команда SystemV для управления службами. Это правда, что большинство современных версий дистрибутивов используют Systemd.
Если у вас есть pid программы, то вы можете использовать «Kill PID» для завершения приложения. Я попытался сохранить полный экземпляр приложения перед закрытием, но этот процесс очень утомительный. Вы можете просто использовать терминал для запуска приложения. Например, если вы хотите запустить firefox, просто набрав в терминале, ваше приложение откроется. Но если вы хотите перезапустить свой сценарий C ++. Это можно сделать, просто передав команду в оболочку.
Я сделал функцию для выполнения команды в оболочке:
Затем, чтобы убить процесс и перезапустить его, я использовал:
Я использовал команду nohup, потому что она освобождает терминал после выполнения команды. Теперь, чтобы вызвать запуск этого сценария, вы можете написать в основном потоке программы:
Источник
Как запускать, останавливать или перезапускать сервисы в Ubuntu
Как и во всех других операционных системах, в Linux есть службы и процессы, выполняемые во время работы системы в фоновом режим. Когда система загружается, сервисы запускаются автоматически и продолжают работать, пока система не выключится. Однако вы можете запускать, останавливать и перезапускать службы вручную.
Рассмотрим различные способы запуска, остановки и перезапуска служб в Ubuntu с помощью systemd, команды service и сценария инициализации init.
Список всех сервисов в Ubuntu
Прежде всего нужно получить список всех служб на вашем компьютере.
Он покажет полный список сервисов на вашем компьютере.
Использование Systemd для запуска / остановки / перезапуска служб в Ubuntu
Вы можете запускать, останавливать или перезапускать сервисы с помощью утилиты systemd systemctl. Начиная с версии 16.04 Ubuntu включает в себя systemd как init-систему по умолчанию. На сегодняшний день это предпочтительный способ работы со службами.
sudo systemctl [действие] [имя службы]
Например, рассмотрим как запустить, остановить или перезапустить службу брандмауэра ufw в Ubuntu.
Откройте окно терминала и введите следующие команды.
Проверить статус службs:
Управление сервисами с помощью systemd
Запуск / остановка / перезапуск сервисов в Ubuntu с помощью команды service
Вы также можете запускать, останавливать или перезапускать службы, используя service. Откройте окно терминала и введите следующие команды.
Проверить статус службы:
Использование скриптов Init для управления сервисами в Ubuntu
Вы можете запускать, останавливать или перезапускать службы, используя сценарии инициализации в каталоге /etc/init.d. Этот каталог на самом деле содержит в себе различные скрипты для разных сервисов. Сценарии инициализации устарели с тех пор, как Ubuntu перешла на Systemd, поэтому этот метод будет использоваться, только если вам приходится иметь дело со старой версией Ubuntu. Откройте окно терминала и введите следующие команды.
Проверить статус службы:
Таким образом, вы можете запускать, останавливать и перезапускать службы разными способами, не перезагружая всю операционную систему. Вы также можете использовать эти команды в других дистрибутивах Linux.
Источник