我有一台运行 Ubuntu 16.04.3 LTS 的小型 Celeron 机器,每次我需要重新启动它(大约每月一次)时,我都必须关闭它,拔掉插头并重新打开它。
问题是它不会自动重启,因为它会以一条消息停止Reached target Shutdown
。所以我已经停止使用sudo reboot
,而是sudo poweroff
改为使用 ,此后不久就会出现该消息。
当我等待几分钟时,会显示一条附加消息3102533.654120 unregister_netdevice: waiting for lo to become free. Usage count=1
。第二个(如时间测量)计数器很高,约为 3102533,大约为 36 天,可能是上次重新启动的时间。所以仍然有一些东西在后台运行,发出该消息。
由于这已经发生过,而且大部分谷歌点击都与 Docker 相关,所以我确保停止所有容器docker stop $(docker ps -a -q)
,并sudo systemctl stop docker
在发布sudo poweroff
.
在那种奇怪的关机状态下,也无法通过正常的电源按钮按下来关闭机器(长按会关闭电源,iirc),并且按下重置按钮也不会重新启动机器,我发现这是会很奇怪。这是http://www.asrock.com/mb/Intel/N3150DC-ITX/
让我最担心的是“hdd”灯(它是一个ssd)偶尔会闪烁,就好像它在与光盘交互一样,这让我害怕拔电源插头时会损坏某些东西。https://www.youtube.com/watch?v=T3ojE1un7WE
拔插头安全吗?我怎样才能找到这个问题的原因?我无法对机器进行太多重启,因为它托管了一些不断被访问的数据库。
以上为2月12日,以下为3月16日
我只是再次“重新启动”了机器。与上述相同的过程,因为它不会关闭。
这次我apt upgrade/dist-upgrade
在重新启动之前没有这样做,之后我又这样做了,以确保正在升级的东西不是导致此问题的原因。
我在等待它关闭的同时按了 ctrl-alt-del 几次,它没有任何效果,直到出现一条消息:
2s内按Ctrl-Alt-Del超过7次,立即重启
(我认为我没有那么快按下它们,我相信它们以某种方式被缓存或者我按下了很长时间)然后是
2697473.41.. systemd-shutdown[1]:无法完成 DM 设备,忽略(DM 之前的额外空间是该消息的一部分)
然后一个
2697473.63..重新启动:重新启动系统
但它不会重启,硬盘灯还是会偶尔闪烁,显示屏不会清除消息。
按下重置按钮不会重置机器。按钮它没有故障。
长按电源按钮会关闭机器。再按一下重启它,然后reset按钮按预期工作,我可以随时按下它,它会导致系统立即重启。
打开电源后,我进行了 apt update/upgrade/dist-upgrade 并再次 sudo poweroff'ed 它。关机就好了。
当机器开机几天时,发生了一些非常奇怪的事情,这一定是导致这个问题的原因。
我正在使用molly-guard
,我不确定这是否会导致一些问题。当我发出时,sudo shutdown
我在连接的键盘上本地执行,所以molly-guard
没有效果。但我怀疑这molly-guard
是麻烦的根源。
我top -b > test-pre-reboot-no-upgrade.txt
在发布之前做了一个sudo shutdown
,这里是输出https://pastebin.com/nZnJzRKu
尝试添加
nolapic
参数grub.cfg
跑
sudo update-grub
https://help.ubuntu.com/community/BootOptions
帮助过我
在这里尝试了这些参数
noapic
nolapic
noacpi
irqpoll
noapm
nodma
nomce
否则它没有帮助。解决了问题-重新编译的initramfs:
sudo update-initramfs -u
我认为这个问题与安装 hdd/ssd 有关。
我正在做的是在 crontab 中我有一个
startup.sh
由主用户(uid 1000)执行的 @reboot shell 脚本,并且该脚本安装了硬盘(它曾经是硬盘,现在是 ssd):sudo mount /dev/sdb1 /media/ssd1
然后我所做的是创建一个
shutdown.sh
脚本,如下所示:有了这个,我可以关闭和重新启动系统。因此,这可能与未明确卸载驱动器以及在关机/重启之前未发出同步有关。
正如评论中提到的,我注意到一个容器(RabbitMQ)正在生成一个巨大的日志文件(增长到大约 40 GB)。也许同步这个文件导致了麻烦,它试图在这个几乎断电的状态下同步它。但我不确定,因为我从一开始就遇到了这个问题,而且我一开始并没有运行 RabbitMQ。