管控主机的休眠状态

| 分类 技术随笔 

继续前三篇的内容,可以控制主机的开启与休眠状态后,我们要让它在需要提供服务的时候开启,不需要的时候休眠。

我们可以在树莓派上编写一个服务器程序,程序提供两个接口,一个是进行网络唤醒,一个是发送休眠命令。

程序运行一个定时器,每隔几秒检测上次进行网络唤醒的时间和当前时间的差,比如大于5分钟,那就进行休眠。

前台程序在使用时,为了避免主机进入睡眠状态,则需要在5分钟内再次发送网络唤醒请求,改变上次记录的时间,以避免主机睡眠。

树莓派给主机发送休眠命令,可以使用ssh,不过因为要执行休眠命令,需要root用户。另外,为了避免输密码,我们需要使用密钥登录。

在树莓派上生成公钥和密钥,需要在用户的.ssh目录下运行,注意这里我们为了登录时不输密码,也不给密钥设置密码:

ssh-keygen -t rsa -b 4096

然后将公钥复制到主机上,这里用scp命令,如果root用户没有.ssh文件夹,还要自行建立:

scp id_rsa.pub root@hostname:/root/.ssh/pub

接下来,在主机上进行以下操作,将公钥内容添加到authorized_keys文件中:

cd /root/.ssh
touch authorized_keys
chmod 600 authorized_keys
cat pub >>authorized_keys

好了,这样就可以在树莓派上控制主机睡眠了:

$ ssh root@hostname pm-suspend


上一篇     下一篇