通过内置扬声器远程使计算机发出哔哔声

wsd*_*wsd 30 linux

我如何远程 (SSH) 使我的 Linux 计算机发出哔哔声(内置扬声器,因为没有外部扬声器)?我有 ubuntu 9.04,如果需要可以安装额外的包。如果您有不止一个站着并且忘记了哪个 IP 是哪个盒子,这将有助于找到某个盒子。

Joh*_*n T 25

尝试:

sudo sh -c "echo -e '\a' > /dev/console"
Run Code Online (Sandbox Code Playgroud)

您可能必须首先加载内置扬声器的内核模块(例如,如果该模块被自动加载列入黑名单):

sudo modprobe pcspkr
Run Code Online (Sandbox Code Playgroud)

  • 这有效,而蜂鸣命令则无效。我只是将其设置为在同事机器上运行。对于“seq 1 10000”中的 i;执行 echo -e '\a' > /dev/console; 睡觉1;完毕 (2认同)

小智 14

第一的:

modprobe pcspkr
Run Code Online (Sandbox Code Playgroud)

然后从主题解决方案,如

ssh user@host
beep
Run Code Online (Sandbox Code Playgroud)


小智 6

从我的 Ubuntu 机器上的beep手册页:

国际奥委会古怪

一些用户会遇到由于 ioctl() 的抱怨而使 beep 停止的情况。这样做的原因,正如 Peter Tirsek 很好地向我指出的那样,源于内核如何处理 beep 试图戳的(对于非程序员:ioctl 是一种包罗万象的函数,它可以让你戳没有其他预定义的戳机制)tty,这就是它发出哔哔声的方式。 简而言之,内核会检查:

  • 你是超级用户

  • 您拥有当前的 tty

这意味着 root 总是可以使 beep 工作(据我所知!),并且任何本地用户都可以使 beep 工作,但非 root 远程用户不能在其自然状态下使用 beep。

这很可能是 beep 拒绝远程工作的原因。您可以通过使用-t选项调用ssh来检查这是否是根本原因,这会强制伪 tty 分配。

一个不太理想的解决方案是创建一个执行 beep 的包装脚本,并授予此脚本 root 权限。如果通过ssh执行此脚本适当地产生蜂鸣声,您就会知道问题是缺少控制终端。