«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Настройка многопользовательского доступа PMor на экземпляре Ubuntu

Настройка многопользовательского доступа PMor на экземпляре Ubuntu

Опубликовано 28 августа 2024 г.
Просматривать:508

Setting Up PMor Multi-User Access on Ubuntu Instance

Для управления приложениями Node.js на рабочем сервере часто требуется менеджер процессов, который обеспечит бесперебойную работу ваших приложений и автоматическое восстановление после сбоев. PM2 — один из самых популярных менеджеров процессов для Node.js, предлагающий мощные функции, такие как мониторинг процессов, управление журналами и режим кластера.

Если вы запускаете приложение на экземпляре Google Cloud Ubuntu, вы можете столкнуться с ситуацией, когда процессы PM2 видны только тому пользователю, который их запустил. Это может быть проблематично, если на вашем сервере несколько пользователей, например разработчики, системные администраторы или сценарии автоматического развертывания. В этом сообщении блога мы рассмотрим шаги по настройке PM2 как общесистемной службы, сделав ее доступной для всех пользователей на сервере.

Зачем настраивать PM2 как общесистемную службу?

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

  • Видимость процессов: все пользователи на сервере могут просматривать процессы PM2 и управлять ими.
  • Автоматический запуск: PM2 будет автоматически запускаться при загрузке системы, обеспечивая постоянную работу ваших приложений.
  • Централизованное управление: журналы и состояния процессов централизованы, что упрощает управление вашими приложениями.

Предварительные условия

Прежде чем мы начнем, убедитесь, что у вас есть следующее:

  1. Экземпляр Google Cloud Ubuntu.
  2. На экземпляре установлены Node.js и npm.
  3. PM2 установлен по всему миру.

Шаг 1. Установите PM2 глобально

Чтобы все пользователи могли получить доступ к PM2, его следует установить глобально. Вы можете установить PM2 глобально, используя npm:

sudo npm install -g pm2

Эта команда устанавливает PM2 в глобальный каталог npm, делая его доступным для всей системы.

Шаг 2. Настройте PM2 как общесистемную службу

Далее нам нужно настроить PM2 для работы в качестве службы. Это позволит PM2 управлять процессами на уровне системы, а не привязываться к конкретному сеансу пользователя.

Выполните следующую команду, чтобы сгенерировать необходимый сценарий запуска для PM2:

pm2 startup

Эта команда определяет систему инициализации, используемую вашим экземпляром Ubuntu (обычно systemd), и предоставляет команду, которую необходимо выполнить с помощью sudo, чтобы настроить PM2 как общесистемную службу. Вывод будет выглядеть примерно так:

[PM2] Init System found: systemd
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u  --hp /home/

Здесь следует заменить именем пользователя, который первоначально настроил PM2. Это гарантирует, что процесс PM2 связан с домашним каталогом правильного пользователя.

Шаг 3. Выполните сгенерированную команду

Скопируйте команду, указанную в выводе предыдущего шага, и выполните ее. Например:

sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u johndoe --hp /home/johndoe

Эта команда создает службу systemd, которая запускает PM2 с правильными переменными среды и контекстом пользователя.

Шаг 4. Сохраните список процессов PM2.

Если у вас уже есть процессы, работающие под PM2, которые вы хотите сохранить при перезагрузках, вам необходимо сохранить текущий список процессов. При этом создается файл дампа, который PM2 будет использовать для восстановления процессов при запуске системы:

pm2 save

Команда pm2 save сохраняет текущий список управляемых процессов в файл JSON в ~/.pm2/dump.pm2. Этот файл загружается автоматически при запуске PM2, обеспечивая восстановление ваших приложений после перезагрузки.

Шаг 5. Включите запуск службы PM2 при загрузке

Чтобы PM2 запускался автоматически при загрузке системы, необходимо включить службу:

sudo systemctl enable pm2-johndoe

Замените johndoe на соответствующее имя пользователя. Эта команда включает службу PM2, гарантируя ее запуск при каждой загрузке системы.

Шаг 6. Доступ к PM2 любому пользователю

Теперь, когда PM2 настроен как общесистемная служба, он должен быть доступен любому пользователю на сервере. Чтобы проверить состояние процессов или просмотреть их список, любой пользователь может запустить:

pm2 list

Эта команда отобразит список процессов, управляемых общесистемной службой PM2, независимо от того, какой пользователь вошел в систему.

Шаг 7. Дополнительная настройка общих журналов (необязательно)

Если вам нужно, чтобы журналы PM2 были доступны нескольким пользователям, вам может потребоваться настроить права доступа к файлам или настроить PM2 для хранения журналов в общем каталоге. Это гарантирует, что все пользователи смогут просматривать и управлять журналами процессов, запущенных под PM2.

Чтобы изменить каталог файла журнала, вы можете использовать следующую переменную среды:

export PM2_HOME=/path/to/shared/pm2/home

Установите это в глобальном файле конфигурации, например /etc/environment, чтобы сделать его постоянным между сеансами.

Шаг 8. Управление процессами PM2 среди пользователей

После настройки PM2 как службы пользователи смогут управлять процессами с помощью стандартных команд PM2. Однако, в зависимости от разрешений и ролей пользователя, для некоторых команд может потребоваться доступ sudo. Например:

sudo pm2 list

Эта команда выводит список процессов, управляемых общесистемной службой PM2, что упрощает совместную работу администраторов и разработчиков по управлению сервером.

Заключение

Настройка PM2 в качестве общесистемной службы на вашем экземпляре Ubuntu гарантирует, что ваши приложения Node.js надежно управляются и доступны всем пользователям на сервере. Эта настройка особенно полезна в средах с несколькими пользователями или автоматизированными процессами развертывания, обеспечивая надежный и централизованный способ управления приложениями.

Следуя шагам, описанным в этом руководстве, вы можете гарантировать, что PM2 доступен всем пользователям, ваши процессы автоматически перезапускаются после перезагрузки системы, а журналы легко доступны. Это не только упрощает управление сервером, но и повышает надежность ваших приложений в рабочей среде.

Удачного программирования!

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/manojspace/setting-up-pm2-for-multi-user-access-on-ubuntu-instance-5g95?1. Если есть какие-либо нарушения, свяжитесь с Study_golang@163. .com, чтобы удалить его
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3