node.js - PM2 应用程序在打印时获得权限被拒绝
问题描述
我有一个正在运行的 pm2 应用程序,该应用程序的打印方法因 EACCES 失败:权限被拒绝,打开 /dev/sopa_printer0 但是,如果使用节点手动执行该应用程序,它可以毫无问题地打印。打印机是 /dev/sopa_printer0
从 pm2 日志:
Print failed Print failed: Error: EACCES: permission denied, open '/dev/sopa_printer0'
从命令行: node server.js 它可以正确打印。
知道我可以从哪里开始调试吗?
node version 10.0.0
npm version 6.0.0
pm2 version 2.10.3
我将我的用户添加到 lp 组:
sudo adduser $USER lp
cat /etc/group | grep -i lp
lp:x:7:imagineing
想象是我的用户
$ ls -alh /dev/sopa_printer0
lrwxrwxrwx 1 root root 7 May 26 12:35 /dev/sopa_printer0 -> usb/lp0
$ ls -alh /dev/usb/lp0
crw-rw---- 1 root lp 180, 0 May 26 12:35 /dev/usb/lp0
解决方案
最后我解决了我的问题。我将 777 添加到 /dev/usb/lp0 设备(我认为其他组合可以工作,但应用程序现在可以工作)
$ ls -al sopa_printer0
lrwxrwxrwx 1 root root 7 May 26 12:35 sopa_printer0 -> usb/lp0
$ ls -al usb/lp0
crwxrwxrwx 1 root lp 180, 0 May 26 12:35 usb/lp0
推荐阅读
- javascript - 在谷歌浏览器中自动播放
- c# - 如何仅以有效形式制作文本框数字和运算符。. .
- google-app-engine - DefaultClient 范围从 App Engine (Go) 1.9 迁移到 1.11
- html - 在每个类上使用 nth-of-type 选择元素,除了多个 div 中的第一个和最后一个
- forms - 以编程方式在 PDF 表单中创建动态表
- deep-learning - ```predictions[a > 0.5] = 1``` 和 ```acc = np.mean(predictions == y)``` 是什么意思?
- c# - 将 JWT 发送到新控制器后如何获取用户信息
- javascript - 未捕获的 TypeError:this.validateHandler 不是 Magento2.3 的函数
- android - 在片段中的 RecycleView 中实现 Searchview 时出现问题?
- popover - iOS 13 - UIPopoverPresentationController sourceview 内容在箭头中可见