简介
一个真实的服务器一般往往不需求衔接键盘、显示器或鼠标等外设。而仅仅需求一个功用安稳的操作体系如Linux和一个网卡。比如鼠标、键盘等外部设备则往往不必要衔接。在运转Linux的机器上,经过网络进行长途管理是最好和最便利的解决办法。
在买服务器时应该保证在开机BIOS中有设定不需求检测键盘的选项。现在市场上大多数主板厂商的BIOS版别都有这样的选项。可是依然有一些主板以为自己的的服务器将只运转windows,因而必定会在发动时需求一个键盘,因而不引荐运用这种机器作为服务器运用。
没有键盘和监视器的计算机十分合适于作为防火墙、web服务器、NFS服务器、邮件服务器的、ADSL网关、DNS服务器的概念等等。而且该机器不必定是功用十分强壮的机器。即便一个老的Pentimu100机器,只需具有满足的内存就能够一起服务数百个客户服务恳求。
服务器不衔接键盘、鼠标和显示器的优点是十分便利,由于服务器将仅仅一个简略的主机箱,能够放在任何合适的当地。但有时分你或许期望能有一个按键来完成安全的封闭服务器而无需首要长途登录服务器运转shutdown指令来完成封闭机器。也或许你现在就在服务器机房,而最近的作业站离你有100多米远;或许你期望某个没有root暗码的一般用户封闭服务器。当然直接封闭电源并不是一个好的主意,由于这样或许导致丢掉数据而且在下次发动时需求很长时刻的文件体系检测。
解决办法是依照本文的办法装置一个很小的、廉价的串口设备完成安全关机。
设备
咱们将制造一个小小的、由两个LED和一个按键式开关组成的设备。其间绿色的LED亮表明当时按键式开关是处于激活状况,缓慢闪耀的黄色LED灯表明服务器正在发动或许依然处于封闭状况。为了完成安全封闭服务器需求继续按下开关3秒钟。
假如你按了按键开关,亮着的绿色的LED将平息,表明正在关机,这时分指令/sbin/shutdown -t2 -h now被执行。在服务器封闭过程中黄色的LED将接连闪耀以进行指示。当黄色LED不再闪耀时,你依然需求等候10秒钟才干封闭服务器电源。当一切的进程被杀掉,磁盘被卸载今后黄色LED将不再闪耀。若你的服务器支撑主动关机则你不需求考虑10秒的等候时刻,由于服务器会主动封闭电源。
串口
关于串口令人感兴趣的是咱们能够经过ioctl体系调用来操控其间的几个管脚。这意味着你不需求修正任何内核代码就能够操控衔接到串口的LED或这读取按键式开关的状况。串口有满足的电压来驱动两个低电压LED。咱们将运用RTS和DTR针来衔接LED,而且Carrier Detect line被用来读取按键开关的状况。
串口母头衔接器的管脚界说:
9 PIN-connector 25 PIN-connector Name Dir Description
1 8 CD input Carrier Detect
2 3 RXD input Receive Data
3 2 TXD output Transmit Data
4 20 DTR output Data Terminal Ready
5 7 GND — System Ground
6 6 DSR input Data Set Ready
7 4 RTS output Request to Send
8 5 CTS input Clear to Send
9 22 RI input Ring Indicator
电路
用户需求下面元器件来制造这个串口关机设备:
1 绿色低电压LED (一个一般LED相同能够作业,可是亮灯过低)
1 黄色低电压LED
2 1.5K欧姆的电阻
1 6.8K欧姆的电阻
1 小按键开关
1 串口母头衔接器
这些元器件依照如下的电路图衔接在一起。串口电压规模是+/- 10伏特。1.5K电阻合适于低电压的LED,可是一般LED相同合适。不引荐修正电阻器电压和运用外部电源,由于串口操控芯片是主板的一部分,一旦你烧了其间的芯片,你只要修正整个主板。
上图是实践的电路板样品图。最终的设备如文章开端图片所示。
软件
软件部分是一个小的看护进程。它能够经过/etc/rc.d/rc3.d/的脚本被发动。它经过运用ioctl(fd, TIOCMSET,…)和ioctl(fd, TIOCMGET, …)函数来读取和写串口。你能够从这儿下载程序。软件中包括一个Makefile和装置指示。