Фоновый процесс останавливается после ввода - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь запустить nodemon в фоновом режиме, используя

nodemon index.js &

nodemon выводит свою инициализацию

[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node index.js`
listening on port 8080

не выдается приглашение, однако любая команда будет запускаться
(после первого нажатия на клавишу ввода введите *)
выполняется cd приводит к выводу bash:

[1]+  Stopped                 nodemon index.js  (wd: ~/foo/bar)
(wd now: ~)

, показывая, что nodemon прекратил работать

Помогите мне, пожалуйста

Насколько я понимаю, bash должен поместить программу в фоновый режим, и, как и все другие процессы, постоянно работающие в фоновом режиме, пользовательский ввод должен перестать влиять на поведение этого процесса.

Должно ли это происходить?
Я что-то упустил?
Как правильно запустить программу в фоновом режиме?
Спасибо всем за проявленный интерес и время.

Дополнительно

Я неоднократно обнаруживал этонажатие enter приведет к остановке задания с несколько иным выводом:

[1]+  Stopped                 nodemon index.js

Это происходит только при нажатии клавиши enter более одного раза.Иногда это происходит после еще одного нажатия, а иногда - после еще большего.Нет четкого распределения количества нажатий

Работа останавливается таким же образом после baz: command not found

1 Ответ

0 голосов
/ 03 декабря 2018

Ваша программа запускается в фоновом режиме, как и ожидалось, и действительно отключена от ввода пользователя.Однако, когда вы создаете фоновый процесс, похоже, что выход управления заданием равен , приостановлен , пока вы не нажмете Ввод .Попробуйте, например, sleep 1 & - при нажатии Enter * 1014 появится строка типа

[1] + Done sleep 1

.* после фоновый процесс завершается.

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

...