我遇到了这个问题,如果没有本地用户登录真正的 TTY,我就无法使用beep
Debian10 无头盒子(好吧,肉是一个无头盒子,尽管需要一个监视器来进行上述测试)。我的意思是使用debian pacakge 中的beep
shell 命令。我可以通过回显 来获得简单的短促蜂鸣声。beep
beep
\a
/dev/tty1
目前的情况是,当我从盒子中以非 root 用户身份登录时,一切都按预期工作,设备列表如下所示
yat-regular-user@wsta:~$ ls -lha /dev/input/by-path/\
total 0\
drwxr-xr-x 2 root root 160 Oct 12 14:02 .
drwxr-xr-x 4 root root 340 Oct 12 14:01 ..
lrwxrwxrwx 1 root root 10 Oct 12 14:02 pci-0000:00:02.0-platform-hdmi-lpe-audio-event - ../event10\
lrwxrwxrwx 1 root root 9 Oct 12 14:01 pci-0000:00:14.0-usb-0:1:1.0-event-kbd - ../event0
lrwxrwxrwx 1 root root 9 Oct 12 14:01 pci-0000:00:14.0-usb-0:1:1.1-event - ../event2
lrwxrwxrwx 1 root root 9 Oct 12 14:01 pci-0000:00:14.0-usb-0:1:1.1-event-mouse - ../event1
lrwxrwxrwx 1 root root 9 Oct 12 14:01 pci-0000:00:14.0-usb-0:1:1.1-mouse - ../mouse0
lrwxrwxrwx 1 root root 9 Oct 12 14:01 platform-pcspkr-event-spkr - ../event7
yat-regular-user@wsta:~$ ls -lnha /dev/input/
total 0
drwxr-xr-x 4 0 0 340 Oct 12 14:01 .
drwxr-xr-x 17 0 0 3.3K Oct 12 14:01 ..
drwxr-xr-x 2 0 0 120 Oct 12 14:01 by-id
drwxr-xr-x 2 0 0 160 Oct 12 14:02 by-path
crw-rw---- 1 0 105 13, 64 Oct 12 14:01 event0
crw-rw---- 1 0 105 13, 65 Oct 12 14:01 event1
crw-rw---- 1 0 105 13, 74 Oct 12 14:02 event10
crw-rw---- 1 0 105 13, 66 Oct 12 14:01 event2
crw-rw---- 1 0 105 13, 67 Oct 12 14:01 event3
crw-rw---- 1 0 105 13, 68 Oct 12 14:01 event4
crw-rw---- 1 0 105 13, 69 Oct 12 14:01 event5
crw-rw---- 1 0 105 13, 70 Oct 12 14:01 event6
crw-rw----+ 1 0 105 13, 71 Oct 12 14:01 event7 # < NOTE HERE, the PLUSE sign
crw-rw---- 1 0 105 13, 72 Oct 12 14:01 event8
crw-rw---- 1 0 105 13, 73 Oct 12 14:02 event9
crw-rw---- 1 0 105 13, 63 Oct 12 14:01 mice
crw-rw---- 1 0 105 13, 32 Oct 12 14:01 mouse0
之后,beep
从 ssh 也可以完美地工作。但如果本地用户注销,并且 TTY 将释放到登录提示符。beep
将停止工作,该魔法+
标志权限位随后也会消失,并beep
开始报告
beep: Error: Could not open any device
显然这里存在权限问题。我不知道。在哪里寻找“+”号权限。感觉像是来自 polkit 的 InActiveResult/ActiveResult 东西的工作,但我找不到任何与 pcspeaker 相关的东西。有人能透露一些信息吗?
我的目标是使用不同的蜂鸣声来指示 cron 作业中的错误。因此,诸如登录/活动用户会话之类的要求对于这项工作来说是不可能的。