Прервите все параллельные задания lerna - PullRequest
0 голосов
/ 22 октября 2018

У меня есть скрипт lerna (lerna dev), который загружает несколько dev-серверов пакета с опцией --parallel (если бы я не использовал эту опцию, запускался только первый сервис, но не другие).Эти серверы обслуживают свои соответствующие приложения в режиме разработки на разных портах с горячей перезагрузкой.По сути, это обеспечивает плавную разработку, поскольку нам нужно всего лишь ввести одну команду, чтобы начать работу с несколькими пакетами.

Проблема, которую я заметил, заключается в том, что при прерывании этой задачи lerna серверы не выключаются,Когда я запускаю команду lerna dev, она печатает сообщения, объясняющие, что серверы уже работают на используемых ими портах.Это означает, что когда я закрываю команду lerna dev (с помощью CTRL + C ), она не убивает все запущенные процессы (некоторые из них убиты, некоторые нет)t).

Интересно, что те, которые не закрываются, create-react-app projects.

Итак, вот мой вопрос: как мне убедиться, что процессы запускаются с помощью команды lerna run с *Опция 1017 * все убиты вместе с основным процессом?

PS: это происходит в системах Unix, мы не используем Windows.

Ответы [ 2 ]

0 голосов
/ 30 марта 2019

Вы можете использовать kill-port для одновременного уничтожения всех процессов в скрипте NPM.

Вы также можете добавить скрипт, который убивает порты и запускает lerna dev дляубедитесь, что порты закрыты, и вы не получите ошибок при запуске серверов.

"scripts": {
  "kill-ports": "kill-port --port 4444,5555,3000",
  "dev": "npm run kill-ports && lerna run dev --parallel"
}
0 голосов
/ 22 октября 2018

Я бы посоветовал вам не использовать ctrl + c для этого.Взгляните на уничтожение процесса через pid (идентификатор процесса), используя kill или pkill -f.

Сначала посмотрите, какие процессы lerna запущены.Я предполагаю, что ps aux | grep lerna должен отображать то, что вы хотите там (настройте grep, если необходимо).Вы можете увидеть основной процесс (я использую Nginx, я никогда не использовал lerna), если так, возьмите PID и наберите kill PID, где PID - ваш главный PID.Если это не убивает все процессы, используйте pkill -f lerna, чтобы убить все процессы, которые соответствуют поисковому запросу lerna (снова настройте, если необходимо).

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

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