Как я могу запустить сервер rails параллельно с сервером webpack, чтобы я мог убить оба одновременно? - PullRequest
1 голос
/ 09 апреля 2019

Я ищу способ раскрутить сервер разработки Rails параллельно с сервером Webpack. Проблема заключается в том, что если я запускаю один из них в фоновом режиме, когда я Ctrl^C закрываю все, один процесс продолжает работать в фоновом режиме и может вызвать странное поведение, связанное с используемыми адресами.

Я пробовал это:

$ rails s & bin/webpack-dev-server

// rails and webpack running in parallel

$ sudo lsof -n -i :3000 -i :3035 | grep LISTEN

ruby    26847 username   13u  IPv4 0xa889e9178532bffd      0t0  TCP 127.0.0.1:hbci (LISTEN)
ruby    26847 username   14u  IPv6 0xa889e91781b9ae3d      0t0  TCP [::1]:hbci (LISTEN)
node    26848 username   19u  IPv4 0xa889e9178e468ffd      0t0  TCP 127.0.0.1:fjsv-gssagt (LISTEN)

Но, как вы можете видеть, когда вы пытаетесь завершить процесс с помощью Ctrl^C, на порту все еще выполняются процессы.

$ sudo lsof -n -i :3000 -i :3035 | grep LISTEN

ruby    26847 username   13u  IPv4 0xa889e9178532bffd      0t0  TCP 127.0.0.1:hbci (LISTEN)
ruby    26847 username   14u  IPv6 0xa889e91781b9ae3d      0t0  TCP [::1]:hbci (LISTEN)

Я знаю, что мог бы просто запустить их в отдельных терминалах и уничтожить оба процесса по отдельности, но я хотел бы иметь возможность создать сценарий пряжи, который запускает их оба, используя что-то вроде yarn start.

1 Ответ

1 голос
/ 09 апреля 2019

Вы можете установить foreman gem, инструкции здесь .

Затем создайте Procfile и добавьте в него сценарии запуска.

web: bin/webpack-dev-server
api: rails s

Для запуска серверов запустите foreman start.

Чтобы уничтожить все процессы, используйте Ctrl^C, в случае неудачи запустите killall "foreman: master".

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