我应该在 Linux / Ubuntu 服务器中运行哪些命令来将当前运行的系统重置为尽可能接近重启后的状态?(无需实际重新启动!)
我可以想象这应该涉及:
- 刷新IO磁盘操作
- 清空各种缓存(磁盘/RAM)
- 卸载所有驱动器并重新安装它们,包括
/
,这可能吗? init
杀死除?之外的所有进程
TL;DR:如何重新启动(重置系统内存等),而不通过 BIOS 序列和 GRUB 实际重新启动?
我使用的是 Ubuntu 18.04,使用systemd
.
上下文:我有一个复杂的脚本运行了几天,涉及 CPU / GPU 计算等。
它有时会在中间失败,并出现一个我到目前为止无法调试的错误:我不知道它是否来自RAM 故障、GPU 故障、温度过高或其他仅与软件相关的问题。该问题不容易重现。
但有一件事是肯定的:
- 如果我在脚本失败后重新启动脚本,则会出现同样的问题。
- 如果我先重新启动计算机然后重新启动脚本,然后它就可以正常工作(直到几个小时或几天后下一次失败)。
因此我想找到一种方法将当前运行的系统重置为尽可能接近重新启动后的状态(因此这个问题)。或者能够自动重新启动(请参阅如果出现错误,请重新启动并重新启动脚本)。
脚本
答案1
以下命令是最接近您需要的命令:
telinit 1
但要刷新缓存磁盘,您应该使用sync
答案2
我认为这完全不可能
如果问题是基于 GPU 的,则卸载并重新加载显卡模块可能会有所帮助。有用的命令:modprobe
rmmod
insmod
如果您有额外的板载显卡,这应该可以在运行时实现
用于调试:如果问题与硬件相关,请检查系统日志文件
/var/log/kern.log
/var/log/syslog
检查dmesg
命令
哈