Linux环境下判断服务器是否正常关机

转载 2013年12月02日 22:16:56
启动时生成一个文件,
然后关机时把它删掉。
下次启动时,如果这个文件还在,就说明上次不是正常关机了。

把删除文件的脚本写在 /etc/rc6.d/ 和 /etc/rc0.d/ 下,
把判断是否正常关机和生成文件的脚本放在 /etc/rc3.d/ 和 /etc/rc5.d/ 下。如果系统没有默认的方法,我就按照flw的方法做了。
系统启动的时候生成一个文件,正常关机的时候则删除这个文件,则可以根据系统开机时有没有那个文件来判断是不是非正常关机。

系统启动的时候生成一个文件,正常关机的时候则删除这个文件,则可以根据系统开机时有没有那个文件来判断是不是非正常关机。

步骤:

在/etc/rc.d/init.d/下编程脚本。

判断是否正常关机,和生成文件的脚本:touch-file.sh

#!/bin/sh
file=/tmp/check
if [ -e ${file} ];then
echo "this is not normal shutdown" >>/var/log/checkmessage
else
echo "this is normal shutdown and touch file" >>/var/log/checkmessage
touch ${file}
fi

chmod 777  /etc/rc.d/init.d/touch-file.sh

正常关机删除文件的脚本:rm-file.sh

#!/bin/sh
file=/tmp/check
echo "this is normal shutdown and rm file" >>/var/log/checkmessage
rm -rf ${file}

chmod 777 /etc/rc.d/init.d/rm-file.sh

让脚本自动执行。

ln -s /etc/rc.d/init.d/rm-file.sh /etc/rc.d/rc0.d/K01rm-file

ln -s /etc/rc.d/init.d/rm-file.sh /etc/rc.d/rc6.d/K01rm-file
ln -s /etc/rc.d/init.d/touch-file.sh /etc/rc.d/rc3.d/S01touch-file

我的系统没用到x-window,所以没有level5,也就是不用在/etc/rc.d/rc5.d/下放脚本。

特别注意:

K开头的代表系统关闭的时候执行,S开头的代表开机的时候执行。注意服务器脚本编写的规范,因为有K开通的软链接并不一定会在关机的时候自动去执行,这是为什么呢?执行K脚本的时候会查询/var/lock/subsys/下是否有与K开头脚本同名的空文件名,如果没有就不去执行,所以要按照服务器脚本编写的规范,启动的时候要在/var/lock/subsys/先touch一个与K01后面同名的空文件:

#/var/lock/subsys #touch fm-file

相关文章推荐

Android 5.0重启恢复Task功能分析

Android5.0新增了一个重启后可恢复Task功能。在正常的Activity切换使用过程中AMS会将Task和对应截图进行保存,重启后会将Task和截图恢复到最近任务栏中。开机恢复Task没什么好...

might_sleep()

might_sleep(): 指示当前函数可以睡眠。如果它所在的函数处于原子上下文(atomic context)中(如,spinlock, irq-handler…),将打印出堆栈的回溯信息。这个...
  • arethe
  • arethe
  • 2010年12月16日 10:22
  • 6002

linux 正常关机

正确的关机方法 OK!大概知道开机的方法,也知道基本的挃令操作,而且还已经知道在线查询了,好累呦! 想去休息 呢!那举如何关机呢?我想,径多朊友在 DOS 的年代已经有在玩计算机了! 在当时我们关...

fedora16 linux不正常关机无法开机解决方法

由于linux不正常关机或者安装软件过程关机,出现进不来界面,显示 sh: can't access tty; jobcontrol turned off (Repair filesystem)...
  • lhqsine
  • lhqsine
  • 2012年03月23日 19:06
  • 1774

测试Linux服务器SCSI/SATA硬盘是否正常

原文链接:http://www.cyberciti.biz/tips/linux-find-out-if-harddisk-failing.html     我们读者中的一个常客提到一个问题:    ...

weed-fs因网络环境发生改变导致服务器不能正常相应的修正记录

事故原因: weedfs服务器昨天能正常运行,因网管修改了安全策略导致weedfs不能使用。 环境说明: master和volume安装在同一台阿里云服务器上 /store/seaweed...

Linux服务器的关机和重启命令

linux下一些常用的关机/重启命令: 在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同...

linux下ecshop"邮件服务器配置"设置完成以后测试邮箱不能正常接收到邮件问题

在windows下安装ecshop之后,只需要正常配置,即可正常收到邮件,如下:   但是在linux下安装的ecshop始终提示发送成功,如下图, 但是测试邮箱却始终没有收到测试邮件, 于是...

在Linux环境下无法正常安装VMware tools工具的解决方法

解决虚拟机Linux系统中无法安装VMwareTools的问题。

Ubuntu使用问题(一):Ubuntu不能正常关机的解决方法

本人正在使用的Ubuntu版本是12.04.5,电脑是2009年款的Asus F81s笔记本,已经很old了。刚开始装上系统时候,Ubuntu是能够正常关机的,出现此类问题的原因有很多种,可能是装了某...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux环境下判断服务器是否正常关机
举报原因:
原因补充:

(最多只允许输入30个字)