如何远程(SSH)使我的Linux Computer Beep(内置扬声器,因为没有外部扬声器)?我有ubuntu 9.04,可以根据需要安装其他软件包。如果您不止一个站着,却忘记了哪个IP是哪个盒子,那么这对于找到某个盒子会很有帮助。
如何远程(SSH)使我的Linux Computer Beep(内置扬声器,因为没有外部扬声器)?我有ubuntu 9.04,可以根据需要安装其他软件包。如果您不止一个站着,却忘记了哪个IP是哪个盒子,那么这对于找到某个盒子会很有帮助。
Answers:
尝试:
sudo sh -c "echo -e '\a' > /dev/console"
您可能必须首先为内置扬声器加载内核模块(例如,如果该模块已从自动加载中列入黑名单):
sudo modprobe pcspkr
seq 1 10000
; 做echo -e'\ a'> / dev / console; 睡1; 完成
在我的Ubuntu机器上的哔声手册页中:
IOCTL公告
一些用户会遇到因ioctl()的抱怨而发出哔哔声的情况。彼得·蒂尔塞克(Peter Tirsek)很高兴向我指出这一点,其原因是内核如何处理蜂鸣声的尝试(对于非程序员:ioctl是一种包罗万象的功能,可以让您对那些没有其他预定义的戳入机制)tty,这是它发出哔哔声的方式。 简而言之,内核检查以下任一情况:
你是超级用户
您拥有当前的tty
这意味着root可以使beep正常工作(据我所知!),并且任何本地用户都可以使beep正常工作,但非root远程用户不能在其自然状态下使用beep。
这很可能就是蜂鸣声拒绝远程工作的原因。您可以通过使用-t选项调用ssh来检查这是否是根本原因,这将强制伪tty分配。
一个不太理想的解决方案是创建一个执行哔声的包装器脚本,并授予该脚本root权限。如果通过ssh正确执行此脚本会发出哔哔声,您将知道问题出在缺少控制终端。
只需输入
ssh user@remote-machine
beep
在Ubuntu Desktop 8.x上进行了测试,即使该服务器上没有本地会话处于活动状态,它也会在远程服务器上发出蜂鸣声(因此:即使GNOME登录屏幕显示在服务器的监视器上)。
看一下
man beep
更多细节。在Debian / Ubuntu上,必须安装蜂鸣包,并且不得使扬声器静音。
beep
和echo
选项都使用我的内置扬声器。尽管man beep
明确指出“以任何方式使PC扬声器发出声音”,但我尚未验证如果安装了声音驱动程序会发生什么情况。
beep
是否不使用系统上的内置扬声器?还是音量控制(在我的Ubuntu盒子上被禁用)还控制内置扬声器?看看echo
解决方案的行为是否不同可能会很有趣。
您可以使用:
ssh user @ remote-machine sudo sh -c“ echo -e'\ a'> / dev / tty1”
请注意,以下操作无效。它甚至在提示输入sudo
密码之前都失败,因为(bash
)shell正在执行重定向,并且该shell仍以普通用户身份运行,而不是root
:
ssh user @ remote-machine sudo echo -e'\ a'> / dev / tty1 -bash:/ dev / tty1:权限被拒绝
ls -la / dev / tty1 crw ------- 1根root 4,1 2009-09-28 16:33 / dev / tty1