VPS · автозапуск

Как запускать своё приложение на VPS через systemd

Создайте службу приложения на VPS, задайте пользователя и каталог, включите автозапуск и проверьте журнал процесса.

Приложение, запущенное из SSH-терминала, может завершиться при закрытии сеанса и не вернётся после перезагрузки. В Debian и Ubuntu с systemd постоянный процесс оформляют как службу. Сначала добейтесь успешного ручного запуска под обычным пользователем: systemd не исправляет отсутствующие зависимости или неверную конфигурацию приложения.

Синий вычислительный модуль — собственная виртуальная машина.

Подготовка службы приложения

  1. Запишите параметры рабочего запуска

    Подготовьте абсолютный путь к программе, рабочий каталог и имя существующего пользователя без прав root. Для Python используйте интерпретатор нужного виртуального окружения; для Node.js — фактический путь к node. Не рассчитывайте, что служба автоматически прочитает настройки вашей интерактивной оболочки или менеджера версий.

  2. Создайте отдельный unit-файл

    Через SSH откройте редактор командой sudo systemctl edit --force --full myapp.service и сохраните самостоятельный файл службы. В разделе [Unit] задайте Description=My application. В [Service] укажите Type=simple, User=имя_пользователя, WorkingDirectory=/абсолютный/каталог, ExecStart=/абсолютный/путь/к/программе и Restart=on-failure, каждую директиву с новой строки. Добавьте RestartSec=5s.

  3. Добавьте правило автозапуска

    В конце файла создайте раздел [Install] со строкой WantedBy=multi-user.target. В ExecStart можно передать путь к файлу приложения как аргумент интерпретатора, но нельзя помещать токен или пароль. Секреты читайте из защищённого файла конфигурации с правами только для нужного пользователя либо из специально настроенного окружения.

Подключить службу и проверить состояниевнутри машины
sudo systemctl daemon-reload
sudo systemctl enable --now myapp.service
systemctl status myapp.service --no-pager
journalctl -u myapp.service -n 50 --no-pager
Перед запуском службы штатно остановите вручную запущенную копию приложения, чтобы они не заняли один порт или одну очередь событий.

Проверьте реальный запрос к приложению, затем закройте тестовый SSH-сеанс и подключитесь снова: служба должна оставаться active. В согласованное окно обслуживания можно проверить перезапуск всей машины. Перед ним сохраните данные приложения и убедитесь, что консоль панели доступна. Если процесс сразу завершается, ищите первую причину в журнале: неправильный каталог, права доступа или отсутствующая переменная окружения.

Изменение unit-файла требует daemon-reload и перезапуска службы; сохранение файла не меняет уже работающий процесс. Для отмены автозапуска и остановки именно этого приложения используйте sudo systemctl disable --now myapp.service. Не отключайте системные службы SSH или сети: они не относятся к настройке вашего процесса.

Читайте дальше

VPS

Что такое VPS и чем она отличается от игрового сервера

Что такое VPS простыми словами: машина с чистой системой и полными правами, программы на неё вы ставите сами. Что панель у неё умеет, чего нет и зачем её берут.

VPS · вход

Первый вход на машину по SSH

Как зайти на VPS по SSH с Windows, macOS или Linux: где панель показывает имя пользователя и адрес, откуда берётся пароль и почему ключ добавляют до заказа.

VPS · тариф

Сколько нужно ядер, памяти и диска

Сколько ресурсов нужно вашей VPS: что такое vCPU, память и диск на примерах бота, небольшого сайта и базы, и как увидеть в панели, чего машине не хватает.

VPS · разбор

Машина не отвечает: что проверить

Что делать, если VPS не отвечает: состояние в панели, консоль вместо SSH, перезагрузка и переустановка — по порядку, от безопасного к необратимому.

VPS · сеть

Порты: как открыть доступ к своей программе

Как открыть порт на VPS, чтобы программу стало видно снаружи: где доступ закрыт на самом деле и чем это отличается от игрового сервера, которому порт даёт панель.

VPS · данные

Снимки и резервные копии: в чём разница

Чем снимок VPS отличается от резервной копии: снимок лежит на той же ноде и вместе с ней теряется. Когда он выручает, когда бесполезен и что считать копией.

VPS · безопасность

Как защитить VPS своими руками

Как защитить свой VPS в первый же день: обновления, вход по ключу вместо пароля, права администратора на одну команду и признаки того, что вы на машине не одни.

VPS · веб-приложения

Nginx на VPS: обратный прокси к приложению и разбор ошибки 502

Проверьте приложение на VPS через localhost, направьте запросы через Nginx и отличите ошибку upstream от DNS и брандмауэра.

VPS · доверие SSH

SSH пишет REMOTE HOST IDENTIFICATION HAS CHANGED: что проверить

Сверьте новый ключ машины через консоль панели и обновите только нужную запись known_hosts после подтверждённой переустановки.