【已解决】nodemon index.js可以正常启动服务,但是使用nohup命令,就报错Error: EBADF: bad file descriptor, read

在命令行中直接使用nodemon可以正常启动node服务

nodemon index.js

在这里插入图片描述
但是使用nohup&启动服务

nohup nodemon index.js &

查看生成的nohup.out文件的内容,发现报错

^[[33m[nodemon] 3.1.7^[[39m
^[[33m[nodemon] to restart at any time, enter `rs`^[[39m
^[[33m[nodemon] watching path(s): *.*^[[39m
^[[33m[nodemon] watching extensions: js,mjs,cjs,json^[[39m
^[[32m[nodemon] starting `node index.js`^[[39m
node:events:497
      throw er; // Unhandled 'error' event
      ^

Error: EBADF: bad file descriptor, read
Emitted 'error' event on ReadStream instance at:
    at emitErrorNT (node:internal/streams/destroy:169:8)
    at errorOrDestroy (node:internal/streams/destroy:238:7)
    at node:internal/fs/streams:272:9
    at FSReqCallback.wrapper [as oncomplete] (node:fs:682:5) {
  errno: -9,
  code: 'EBADF',
  syscall: 'read'
}

Node.js v20.17.0

在这里插入图片描述

解决办法:

参考stackoverflow.com上一篇文章Error: EBADF, bad file descriptor when running node using nohup of forever

在这里插入图片描述

This is the correct answer. I was facing the same issue - executing directly node file.js worked fine, doing it using nohup did not work and I got the EBADF error mentioned above. putting here for anyone that might need it, here is the full command I use to also log the output and errors: nohup node file.js </dev/null > scriptresults.log 2> scripterror.log & – Lior Gross CommentedOct 28, 2021 at 17:27

使用下面的命令,可以使用nohup命令成功启动node服务

nohup nodemon index.js </dev/null > scriptresult.log 2> scripterror.log &

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值