首页 > 解决方案 > 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

标签: node.jspm2udev

解决方案


最后我解决了我的问题。我将 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

推荐阅读