Answers:
我在网上找到的最好的说明是WOL的XBMC Wiki。简而言之(链接中的更多信息):
sudo apt-get install ethtool
;sudo ethtool -s eth0 wol g
;未经测试;Wiki链接中的信息
除了睡眠模式之外,您想要的是休眠状态,因为您想将状态保存在硬盘中并完全关闭服务器。
因此,正如许多人指出的那样,答案是WOL(局域网唤醒)。关于它有很多教程,但主要是您需要设置以下内容:
在一个小时的闲置状态下,服务器不需要进行比适当的电源管理配置更多的设置即可使系统停机(可以通过系统>管理>电源管理来完成)。
显然,在发送WOL数据包后,您必须等待一段时间,因为您的系统需要进行休眠模式,这可能需要花费一些时间。
祝好运
我决定我想要一个不依赖于dd-wrt的访问时自动唤醒媒体服务器的解决方案。
我有一个树莓派,所以我用它,因为它功耗低,我不介意一直保持它运行,当然它可以在任何Linux机器上运行。
我为自己找到的最终解决方案是编写一些bash脚本。raspberry-pi依赖项是etherwake和tcpdump。两者在rasbian上均未默认安装。同样在服务器上,需要启用Wake On Lan,如其他文章所述。
sudo apt-get install etherwake
sudo apt-get install tcpdump
唤醒脚本如下:
nano ~/wol.sh
然后:
#!/bin/bash
pingInterval=60 #time interval, in seconds, between checks that the server is still awake.
target=192.168.x.x #WOL target ip address
targetMAC=00:11:22:33:44:55 #WOL target MAC
wake () {
tcpdump -i eth0 -c 1 -p host $target
etherwake $targetMAC
#echo WOL sent to $target at $targetMAC
return
}
while sleep $pingInterval; do
varPing=`ping -s 1 -c 2 $target > /dev/null; echo $?`
if [ $varPing -eq 0 ]; then
#echo ping success
else
#echo ping fail
wake
fi
done
主要想法是,它是从我的raspberry-pi运行的,如果它注意到对服务器的一个arp请求,它将唤醒服务器。如果服务器处于唤醒状态,则它将不会监听arp请求,但会不时发送一些ping命令,以确保其仍处于唤醒状态。
我将文件命名为wol.sh并使其可执行。然后将其放在sudo crontab中,以root身份启动@reboot。这是针对tcpdump的,它需要提升的访问权限才能监听eth0和etherwake。
sudo chmod +x /home/pi/wol.sh
sudo crontab -e
将此添加到底部
@reboot sh /home/pi/wol.sh > /dev/null