bash - 输入后后台进程停止
问题描述
我正在尝试使用在后台运行 nodemon
nodemon index.js &
nodemon 输出其初始化
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node index.js`
listening on port 8080
没有给出提示,但是,任何命令都会运行
(在第一次显示提示时按 enter 后)
运行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
解决方案
您的程序正在按预期在后台启动,并且确实与用户输入断开连接。但是,当您在后台处理进程时,看起来作业控制输出已暂停,直到您按下Enter。尝试例如sleep 1 &
- 一条线
[1]+ 完成睡眠 1
当您在后台进程完成Enter 后按下时会出现。
我怀疑这可能是为了避免在用户尝试键入另一个命令时将行输出到屏幕上。
推荐阅读
- ios - 开发人员在浏览代码库时会遇到两种不同的语法来创建具有给定整数的 NSString。(在 MRC 中实现)
- ios - 外部 API 链接已损坏,我无法从 iOS 开发中 Json 文件中的错误 API 获取任何数据
- centos - 建立 IKE_SA 失败,对等体没有响应 - Strongswan 与 Centos 7 [可能重复]
- javascript - Javascript:推送函数在有引用和无引用的数组中表现不同
- tensorflow - 如何在keras tensorflow中将图像作为输入并获取另一个图像作为输出
- reactjs - 未处理的拒绝(TypeError):尝试从rest api获取数据以做出反应时无法获取错误
- azure-active-directory - 使用 Azure AD 对应用程序进行身份验证和授权以访问 Azure 服务总线实体
- ios - IOS 地图引脚不显示?
- wordpress - Nginx 子域只能在本地访问
- python - 更改除某些列之外的列名