我想使用蜂鸣器的控制台 API 来产生音调,因为它的延迟比 evdev API 更低,但在图形 shell 中不允许这样做。
Ctrl++Alt打开F6tty6,登录后我可以运行
beep -e /dev/tty6
在图形外壳 tty7 中,您无法写入 /dev/tty7 或任何其他 tty 文件,并且禁止以 root 身份运行 beep。
https://github.com/spkr-beep/beep/issues/6#issuecomment-1264648890
维护人员在这里说,出于安全原因这不是一个好主意,但我不打算长期这样使用它。
答案1
beep
禁止以 root 身份运行
在我的 Debian 10 beep
1.4.3中能以 root 身份运行。
我的测试表明,当环境中beep
有SUDO_UID
、或时,SUDO_GID
它将拒绝工作。为其执行的命令设置这些变量。SUDO_USER
SUDO_COMMAND
sudo
琐事:变量是sudo -u "$USER" beep
不起作用的原因。有趣的是,它不起作用,因为beep
这里以调用用户的身份执行,就像beep
没有 一样sudo
。
我可以用来env -u …
取消设置变量,或者只是env -i
清除环境:
sudo env -i beep -e /dev/tty1
(我注意到我可以选择任何现有的tty
;不需要事先登录到 tty)。但我不确定这是否有助于您降低延迟。sudo
并且env
是会增加延迟的附加程序。
或者,我可以调用sudo -i
变量unset
– 然后我可以调用beep -e …
以 root 身份运行的变量。