我需要使用电源按钮正确关闭一些 Windows 2012 服务器。
但:
在以前的 Windows 版本中,我习惯于使用 GUI 配置电源按钮行为并修改注册表项 ( HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system\shutdownwithoutlogon),但这似乎不再相关。
有谁知道“官方”的方式,或者一个技巧?
编辑:
每次按下电源按钮时,系统日志都会显示一个事件。The kernel power manager has initiated a shutdown transition事件 ID 为 109。
当会话被锁定时,此事件之后没有任何内容。其他日志中没有其他事件。
当程序拒绝关闭时,我有相应的日志条目,所以这很快就可以了。
我正在为 Raspberry Pi 供电,其中更改 GPIO 线之一的状态会立即关闭电源。在运行级别 0 中执行此操作是否安全,或者在断电之前是否还有更多的关闭工作要做?如果没有,有没有更好的地方去做?
我问的原因是因为树莓派是一个嵌入式系统,不能关闭它自己的电源。断电通常由操作员在墙上关闭它来完成,但在我的情况下,它将成为远程电池供电系统的一部分,不需要一直运行。
在 Linux 中,init 6 命令先优雅地重新启动运行所有 K* 关闭脚本的系统,然后再重新启动。reboot 命令可以非常快速地重新启动。它不执行任何终止脚本,而只是卸载文件系统并重新启动系统。重启命令更有力。
来源:http : //www.vreference.com/2009/09/23/reboot-is-not-the-same-as-init-6/
对于 Unix 系统作为 Solaris,这似乎是正确的,但我一直将以下 3 个命令视为同义词,因为它们似乎都在卸载文件系统并重新启动服务器之前关闭服务:
shutdown -r now
reboot
init 6
Run Code Online (Sandbox Code Playgroud)
有人能说出这些命令之间的区别吗?
这是我的基本设置:
到目前为止,在过去的 12 个月中,以下场景在我身上发生过两次:
正如 ewwhite 所指出的,特定的UPS 型号会有所帮助:
你们中有人遇到过同样的问题吗?某些 UPS 是否有开箱即用的解决方案?
到目前为止,我已经考虑设置一些低功耗的 linux 设备(Raspberry Pi?)来接管监控;它将检查 UPS 单元是否有足够的电池电量和输入电源状态,然后通过 ILO/IPMI 重新启动服务器。
是否有任何自动解决方案太麻烦(对于我的情况和一般情况),我是否应该在发生这种情况时进行手动干预?
问候 …
叫我受虐狂,但实际上我喜欢在关闭服务器时输入详细信息。
不过,Windows Server 2012 R2 似乎没有提供一个领域来做到这一点。
有什么方法可以通过GUI而不是命令行添加关闭的“原因”?
Hyper-V 使用什么机制来通知 Linux 来宾正常关闭?
不知何故,CoreOS 确实正常关闭,但另一个 Linux 没有(它只是突然断电)
我们有一组运行 Windows Server 的 AWS EC2 实例。自从从 Windows Server 2012r2 迁移到 2016 以来,我们遇到了服务器因未知原因关闭的问题。在对事件日志进行详尽检查后,唯一的一致性似乎如下:
The process C:\Windows\system32\winlogon.exe ([computername]) has initiated the power off of computer [computername] on behalf of user NT AUTHORITY\SYSTEM for the following reason: No title for this reason could be found
Reason Code: 0x500ff
Shutdown Type: power off
Run Code Online (Sandbox Code Playgroud)
我们已经考虑并从理论上排除了以下情况:
Windows 更新问题
电源按钮切换,或硬件/电池问题
Windows Server 许可证到期
对于旧版本的 mstsc,登录屏幕上会显示一个电源按钮,可用于以这种方式关闭系统
windows amazon-ec2 amazon-web-services shutdown windows-server-2016
我用Libvirt创建了一个VM,当我强行或使用ACPI关闭它时,它会被删除。我创建它:
<domain type='kvm'>
<name>deneme2</name>
<memory>2097152</memory>
<vcpu>1</vcpu>
<os>
<type>hvm</type>
<boot dev="hd" />
</os>
<features>
<acpi/>
</features>
<on_poweroff>preserve</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<on_lockfailure>poweroff</on_lockfailure>
<devices>
<graphics type='vnc' port='-1'/>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/home/mustafa/buki/vms/deneme2/disk0.img'/>
<target dev='vda' bus='virtio'/>
</disk>
<disk type='file' device='disk'>
<source file='/home/mustafa/buki/vms/deneme2/cloud-init.img'/>
<target dev='vdb' bus="virtio"/>
</disk>
<interface type='network'>
<source network='br0-bridge'/>
<mac address='00:16:3e:5a:41:9c'/>
<model type="virtio" />
</interface>
</devices>
Run Code Online (Sandbox Code Playgroud)
但是,尽管我正确使用了 on_poweroff 事件,但它会立即被删除。
$ virsh dumpxml deneme2 | grep "on_poweroff"
<on_poweroff>preserve</on_poweroff>
$ virsh shutdown deneme2 --mode acpi
Domain deneme2 is being shutdown
$ virsh list …Run Code Online (Sandbox Code Playgroud) 使用 virtualbox,我用来VBoxManage controlvm "$VMNAME" acpipowerbutton在主机关闭时关闭虚拟服务器。
这在我测试时效果很好,但在实际情况下(即当主机重新启动以进行更新时,甚至有时在手动重新启动以进行维护时)时则不然。在其中一些情况下,VM 不会关闭,并且在超时后 virtualbox 进程被终止,这不太理想。
我正在尝试使用 systemd 来构建 Apache、PHP-FPM 和 MariaDB 服务的关闭和启动:
这些是文件/etc/systemd/system夹中的其他配置文件:
# httpd.service
.include /usr/lib/systemd/system/httpd.service
[Unit]
After=mariadb.service php-fpm.service
Before=php-fpm.service
# php-fpm.service
.include /usr/lib/systemd/system/php-fpm.service
[Unit]
Before=mariadb.service
Run Code Online (Sandbox Code Playgroud)
我的意图是仅在 PHP-FPM 和 MariaDB 启动后才启动 Apache,并在停止 PHP-FPM 之前停止 Apache,在 MariaDB 之前停止 PHP-FPM。
但是,我在启动和关闭时都遇到错误:
12:42:09 systemd[1]: Found ordering cycle on php-fpm.service/stop
12:42:09 systemd[1]: Found dependency on mariadb.service/stop
12:42:09 systemd[1]: Found dependency on php-fpm.service/stop
12:42:09 systemd[1]: Job httpd.service/stop deleted to break ordering cycle starting with php-fpm.service/stop
12:42:09 systemd[1]: Stopping MariaDB database server...
12:42:12 systemd[1]: Stopped MariaDB database server. …Run Code Online (Sandbox Code Playgroud)