Вариант использования:
Я пишу 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. Я также открыт для альтернативных способов решения этой задачи.
Спасибо за любую помощь