Как создать полностью отделенную команду в nodejs и заставить новый терминал ее обрабатывать? - PullRequest
0 голосов
/ 10 июля 2019

Вариант использования:

Я пишу CLI с узлом, который имеет много функций. Две функции являются прослушивателями файлов, поэтому они работают неопределенно долго, пока не будут закрыты. Например, у меня есть команда [fargo], которая выполняет небольшую задачу и затем завершает ее, но у меня есть другая функция [содержать], которая прослушивает изменение файла и блокирует терминал, в котором он запущен. Я хочу, чтобы пользователь мог звонить [содержать], но не терять свой доступ к терминалу. Я могу создать дочерний процесс, который полностью отделен от родительского, но я не могу открыть новый терминал с помощью команды, особенно в MacOS. Я очень хочу, чтобы пользователь мог выйти из команды зацикливания, закрыв новый терминал, а не запускать зацикливание команды в фоновом режиме в своей системе.

const subprocess = spawn('contain',['montreal'], {
  detached: true,
  stdio: 'ignore',
  shell: '/bin/bash' //Ive tried leaving this blank, setting it to true, and using 3rd party modules

})

Таким образом, это корректно запускает команду содержимого montreal без блокировки родительского элемента, но я не могу заставить его открыть терминал MacOS. Я пытался извлечь уроки из предыдущих ответов на стеке, но ничего не получается. Было бы удивительно, если бы существовал кроссплатформенный способ сделать это. Я определенно открыт для использования сторонних модулей, но я бы не стал использовать такой монитор, как pm2. Я также открыт для альтернативных способов решения этой задачи.

Спасибо за любую помощь

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