【发布时间】:2018-12-03 02:05:32
【问题描述】:
我正在尝试使用在后台运行 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 键时才会出现这种情况。有时它会在多按 1 次之后发生,而其他时候它会在更多次之后发生。按压次数没有明显规律
在baz: command not found之后作业以同样的方式停止
【问题讨论】:
-
nodemon在运行时是否从 stdin 读取?根据 bash 手册:“只允许 foreground 进程从终端读取。尝试从终端读取的后台进程由内核的终端驱动程序发送 SIGTTIN 信号,除非被捕获,否则会暂停进程。"