![你不能。](https://linux22.com/image/129054/%E4%BD%A0%E4%B8%8D%E8%83%BD%E3%80%82.png)
乌斯蒙配置为在电源故障时自动关闭系统。
然而,关机似乎中途失败,导致我无法远程访问系统:
Feb 2 12:21:54 the_host upsmon[22861]: Executing automatic power-fail shutdown
Feb 2 12:21:54 the_host shutdown: power-down by root:
Stopping cron.
Waiting for PIDS: 3871.
Stopping zfsd.
Waiting for PIDS: 3857.
Stoppingthejail....arp: writing to routing socket: No such file or directory
bridge0: can't disable some capabilities on em0: 0x1
Unmounting user-supplied file-systems
90 second watchdog timeout expired. Shutdown terminated.
Fri Feb 2 12:23:55 CET 2018
Feb 2 12:23:55 the_host init: /bin/sh on /etc/rc.shutdown terminated abnormally, going to single user mode
Feb 2 12:23:55 the_host init: /bin/sh on /etc/rc.shutdown terminated abnormally, going to single user mode
Feb 2 12:23:55 the_host upsd[22837]: mainloop: Interrupted system call
Feb 2 12:23:55 the_jail syslogd: exiting on signal 15
Feb 2 12:24:15 init: some processes would not die; ps axl advised
需要物理访问才能重新启动。
1. 如何确保关闭完成并使系统处于关闭状态(以便我可以通过以太网魔术包启动它)?
2. 在这种情况下如何保证远程访问?
答案1
你不能。
FreeBSD 程序中的状态机/sbin/init
根本不适合你。在这些和其他故障中,它会从运行到“单用户模式”状态的状态转换/etc/rc.shutdown
为“单用户模式”状态,在“单用户模式”状态下,它在“控制台”终端上生成一个交互式 shell,并期望系统操作员坐在其中工作。
正如通知告诉您的那样,系统希望您在该特权终端上直接进行干预,并使用ps
和其他命令来找出为什么您的进程不会终止、终止它们并重新启动关闭。
当然,您可以使控制台成为一个真实的串行终端(而不是由内核终端仿真器使用直接连接的 HID 硬件提供的虚拟终端),并使用一些额外的套件使该串行终端成为远程终端。
或者,您可以用不包含“单用户模式”概念的系统管理器来替换 FreeBSD 提供的系统管理,“单用户模式”是梯子上的一个步骤,引导和关闭都以相反的方向遍历。
但除此之外,这里的设计源于世界上大型多终端机器为系统操作员提供了独特的工作站,因此 xe 直接监督引导和关闭并手动干预错误,确实违背了完全无头文件的概念没有保姆的服务器。
进一步阅读
- 乔纳森·德博因·波拉德 (2016)。紧急和救援模式引导的一代。经常给出的答案。
- https://unix.stackexchange.com/a/196471/5132