AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 423532
Accepted
Daniel F
Daniel F
Asked: 2018-02-12 23:17:28 +0800 CST2018-02-12 23:17:28 +0800 CST 2018-02-12 23:17:28 +0800 CST

Ubuntu:“达到目标关机”,可以安全拔掉插头吗?

  • 772

我有一台运行 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

ubuntu reboot
  • 2 2 个回答
  • 25656 Views

2 个回答

  • Voted
  1. Alex_Krug
    2018-02-15T19:33:03+08:002018-02-15T19:33:03+08:00

    尝试添加nolapic参数grub.cfg

    跑

    sudo update-grub

    https://help.ubuntu.com/community/BootOptions

    帮助过我

    在这里尝试了这些参数noapic nolapic noacpi irqpoll noapm nodma nomce

    否则它没有帮助。解决了问题-重新编译的initramfs:

    sudo update-initramfs -u

    • 0
  2. Best Answer
    Daniel F
    2019-10-06T14:03:33+08:002019-10-06T14:03:33+08:00

    我认为这个问题与安装 hdd/ssd 有关。

    我正在做的是在 crontab 中我有一个startup.sh由主用户(uid 1000)执行的 @reboot shell 脚本,并且该脚本安装了硬盘(它曾经是硬盘,现在是 ssd):

    sudo mount /dev/sdb1 /media/ssd1

    然后我所做的是创建一个shutdown.sh脚本,如下所示:

    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #       Ensure that this is desired
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    echo ""
    echo "---- do you really want to shutdown/reboot? ----"
    echo ""
    read -n 1 -p "no, yes? (N/y) " ans;
    case $ans in
      y|Y) printf "\n\nok, preparing for shutdown/reboot\n\n";;
        *) printf "\nok, exited\n\n";       exit;;
    esac
    
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #       DOCKER
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    echo ''
    echo '--| stopping docker portainer |--';
    echo ''
    docker stop portainer
    
    ... stop more containers
    
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #       Python
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    echo ''
    echo '--| killing all python processes |--';
    echo ''
    sudo pkill python
    
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #       MongoDB
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    echo ''
    echo '--| exiting mongodb instances |--';
    echo ''
    mongod --dbpath /media/ssd1/data/mongodb/network/wiredTiger --shutdown
    
    ... stop more databases
    
    echo ''
    echo '--| deleting old mongodb logs |--';
    echo ''
    exec rm -rf {} \;"
    sudo sh -c "find /media/ssd1/data/mongodb -type f -name 'log.txt.*' -exec du -ch {} + | sort -h"
    sudo sh -c "find /media/ssd1/data/mongodb -type f -name 'log.txt.*' -exec rm -rf {} \;"
    
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #       Sync
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    echo ''
    echo '--| syncing discs |--';
    sync
    
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #       SSD
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    echo ''
    echo '--| unmounting ssd1 and hdd5-1 |--';
    echo ''
    sudo umount /media/ssd1/
    
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #       Ask for next step
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    echo ""
    echo "---- ok, done. what next? ----"
    echo ""
    read -n 1 -p "exit, reboot, or shutdown? (E/r/s) " ans;
    case $ans in
      r|R) printf "\n\nok, rebooting\n\n";    sudo reboot </dev/null;;
      s|S) printf "\n\nok, powering off\n\n"; sudo poweroff </dev/null;;
        *) printf "\nok, exited\n\n";       exit;;
    esac
    

    有了这个,我可以关闭和重新启动系统。因此,这可能与未明确卸载驱动器以及在关机/重启之前未发出同步有关。

    正如评论中提到的,我注意到一个容器(RabbitMQ)正在生成一个巨大的日志文件(增长到大约 40 GB)。也许同步这个文件导致了麻烦,它试图在这个几乎断电的状态下同步它。但我不确定,因为我从一开始就遇到了这个问题,而且我一开始并没有运行 RabbitMQ。

    • 0

相关问题

  • 使 Apple 键盘设置在 ../hid_apple/parameters/ 中持久化

  • 用文件中的点绘制二维图形

  • 如何验证我使用 9.9.9.9 作为 DNS?

  • 并行安装多个 linux 发行版

  • 自编译 OpenVPN 不会从 systemd 启动

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve