Как запустить исполняемый файл (веб-приложение) 24/7 и автоматически перезапускать его при выходе из строя? [закрыто]

0
15.04.2016, 14:38
3 ответа

Да, вам нужно сделать полноценный исполняемый файл веб-сервера службой. Предпочтительно использовать для службы учетную запись не root - я бы даже сказал, что это обязательно - для ограничения ущерба в случае взлома веб-сервера. Я думаю1 systemd достаточно хорошо документирован, чтобы провести вас через все необходимые шаги.


1 Я не запускаю systemd, если вдруг возникнет вопрос...

1
28.01.2020, 02:48
  • Простой способ

Создайте скрипт (например, /home/user/start_service.sh) со следующим содержанием:

#!/bin/sh
while true; do
    path/to/service/executable
done

И добавьте его в /etc/rc.local:

#!/bin/sh -e
su user -c '/home/user/start_service.sh' &
exit 0

Затем запустите скрипт вручную:

/home/user/start_service.sh

Таким образом, вы можете забыть о своем веб-приложении. Оно будет запускаться автоматически при старте системы.

  • Правильный способ:

Используйте такие инструменты, как systemd и upstart для создания службы из вашего приложения.

0
28.01.2020, 02:48

В системах init старого образца вы можете использовать старое доброе приложение start-stop-daemon, которое позаботится о перезапуске процесса, если он умрет. Просто сделайте что-то вроде:

start-stop-daemon --start --background --exec /path/to/your/executable

Оно также позволяет установить приоритет планирования, приоритет ввода-вывода и т.д. для запущенного процесса.

В системе с поддержкой systemd вы также можете (или даже лучше) создать единицу обслуживания systemd, как вы упомянули. Он будет делать то же самое, но используя функциональность systemd вместо отдельного вызова start-stop-daemon. Подробности см., например, здесь: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Managing_Services_with_systemd-Unit_Files.html

0
28.01.2020, 02:48

Теги

Похожие вопросы