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

Linux正确关机

 一、关机/重启相关命令          将数据同步写到硬盘中:sync          惯用的关机指令:shutdown          重新启动,关机:reboot,halt,p...
  • u013256605
  • u013256605
  • 2014年09月21日 17:17
  • 1461

公网服务器远程桌面连接攻击而频繁关机的解决案例

近来发现置于公网的一台服务器频繁自动重启,几乎每次远程登录均会看到系统意外关机的提示并要求选择原因,打开事件查看器,发现有大量的同一类异常事件发生,如下图:   发生的频繁为15-17秒一次,再看...
  • jhycjhyc
  • jhycjhyc
  • 2016年05月10日 09:50
  • 1639

windows server 2008r2服务器自动关机的原因和解决办法

windows server 2008r2服务器自动关机的原因和解决办法 正睿科技  发布时间:2015-08-13 15:00:33  浏览数:10992 现象问题:安装的200...
  • Hmillet
  • Hmillet
  • 2016年06月13日 16:54
  • 7083

【学习笔记——Linux】Linux下正确关机方法

介绍了与 Linux 关机相关的命令及注意事项。
  • on_1y
  • on_1y
  • 2013年02月10日 13:19
  • 16651

linux下的几种关机方式

1.shutdown  shutdown命令安全地将系统关机。 有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。因为linux与windows不同,其后台运行着许多进程,所以强制关...
  • sfdst
  • sfdst
  • 2016年05月26日 15:25
  • 1284

最好用的服务器定时自动关机或重启软件

铭斯关机重启软件是定时自动关机或重启计算机的工具。它与众多的同类软件的根本区别在于,本软件是以系统服务的形式运行,不需要用户登录系统就能正常执行。 同时支持远程控制执行关机或重启计算机。另外有配套的...
  • CableProSoft
  • CableProSoft
  • 2016年06月29日 14:44
  • 722

如何验证远程服务器上文件是否存在

转载:http://blog.csdn.net/soundfly/article/details/6177535 没有废话,只有代码。   [java] view...
  • u011203602
  • u011203602
  • 2015年09月22日 18:09
  • 1023

Java Socket远程关机,重启

Java Socket远程关机,重启摘要 -通过Java Socket实现远程关机,重启命令 -以下,直接贴代码,代码实现了服务端操作,客户端响应关机,重启操作客户端(执行远程命令)package...
  • zqq3436
  • zqq3436
  • 2017年04月03日 10:37
  • 804

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

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

检查文件是否存在于远程服务器上

在有些情况下,你要测试文件是否存在于远程Linux服务器的某个目录下(例如:/var/run/test_daemon.pid),而无需登录到远程服务器进行交互。例如,你可能希望你的脚本根据特定文件是否...
  • cennedy
  • cennedy
  • 2017年05月16日 11:45
  • 1912
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux环境下判断服务器是否正常关机
举报原因:
原因补充:

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