Запустите Phusion Passenger из кода Ruby - PullRequest
0 голосов
/ 08 мая 2018

Я бы хотел запустить сервер из своего кода, как Rails запускает Unicorn, Puma, Webrick или что-то еще с «rails server». Я хотел бы иметь бинарный файл типа «сервер mygem», и он запустит Passenger.

Я пытался с обратными галочками, но я хотел бы избежать порождения другого процесса, если это вообще возможно. (Кроме того, когда я это сделал, я потерял стандартный вывод Пассажира.)

Является ли командная строка единственным способом запуска Passenger?

1 Ответ

0 голосов
/ 10 мая 2018

Passanger - это "гем" C ++, который фактически запускает слой Ruby, отделенный от процесса корневого сервера.

Разработчики рассматривают этот подход для защиты сервера от проблем, связанных с Ruby (я думаю, что в этом нет необходимости, но это определенно интересно).

Это оставляет вам несколько вариантов:

  1. Вы можете использовать Kernel.exec, который заменяет текущий процесс на указанную вами командную строку.

  2. Вы можете использовать другой сервер, например Puma , Йод , Agoo или любой другой.

    Каждый сервер имеет свои преимущества и недостатки, поэтому тестируйте и выбирайте.

    Я знаю по опыту, что вы можете запустить их все из одного блока кода (или, как я помню).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...