实际情况描述:


当我们维护服务器的时候,由于工作需要有时必须重启服务器,但通过远程桌面连接成功并进行服务器重启后会发现操作失效,我们倒是和服务器断开了会话连接,不过服务器还是保持在桌面状态,用ping命令测试连通正常,这说明这次通过远程桌面重启服务器没有成功。


 


分析原因:


从上面的描述我们能知道在他进行完远程重新启动的操作后自己的会话是中断的,也就是说服务器已开始进入重启操作准备阶段,不过为什么之后的重新启动操作却失败了呢?原因只有一个,那就是某个程式或进程阻止了重启操作的继续运行,也就是说系统运行了一些不能被自动关闭的程式而导致重启无法顺利完成。

    那么怎么解决这个问题呢?我们能联想到平时操作计算机时遇见的症状,非常多时候我们在重新启动计算机或关闭计算机时都会出现一个“某某程式无法关闭,请按强制关闭按钮或等待一段时间后再次尝试关闭操作的提示”,这和上面那位网友遇见的问题原理是相同的。而不同的是在本机操作时能直接点“强制关闭”按钮来完成重新启动操作,在服务器上由于远程桌面程式会先于这些难关闭的进程结束,所以我们就无法点“强制关闭”按钮进行操作了。知道了问题的根源我们就能从入手进行解决了。


 


    这里我们通过强制关闭命令来解决这个问题。


    在windows 2003 server中有一个叫做shutdown.exe的文件,他主要负责重新启动计算机,注销计算机,关闭计算机的工作,通过他能完成上述操作。而令人欣喜的是该命令提供了一些参数,通过这些参数能强制关闭阻碍重启计算机的进程。


    第一步:通过windows 2003 server的“开始->运行->输入CMD”进入命令行模式。


    第二步:在命令行模式中输入shutdown后回车。(如图1)




    第三步:默认不加参数是无法实现所有操作的,下面简单介绍下shutdown命令的常用参数。


    /显示帮助信息
    /l注销
    /s关闭计算机
    /r关闭并重启动计算机
    /a取消放弃系统关闭的操作。
    /h休眠本地计算机。
    /t xxx??设置关闭前的超时为xxx秒,不加xxx默认为30秒。
    /f强制正在运行的应用程式关闭而不事先警告用户,这个就是我们本篇文章的关键


    第四步:执行“shutdown -r -f -t 1”(不含引号)命令完成我们的强制重新启动计算机操作,遇见不能自动关闭的进程或程式将强制关闭。该命令中的-r参数是重新启动,-f是强制关闭进程和程式,“-t 1”是设置关闭倒记时为1秒


        第五步:这样以后我们通过远程桌面连接上服务器后就能通过shutdown -r -f -t 1让其重新启动了,即使遇见无法关闭的进程也会强制关闭。