我正在使用内核运行 Archlinux 5.7.0-arch1-1 (linux@archlinux)
,从 5.4ish 内核开始,systemd 需要大约 10 秒才能挂起我的笔记本电脑。以下是以下问题systemctl suspend
:
- 立即关闭网络管理器。
- 大约 10 秒内不执行任何操作。
然后它挂起,但是当它醒来时:
- 网络管理器需要很长时间才能扫描并连接到 wifi 网络。
解决方案:
如果我这样做# echo mem > /sys/power/state
,它会立即挂起,没有任何网络管理器问题。它的工作速度非常快。
但我不确定为什么systemctl suspend
需要这么长时间,但echo mem > /sys/power/state
根本不需要时间。
我读过了这但仍然不确定直接使用 echo 命令而不是 systemd 的效果,说实话,我有点担心如果systemctl suspend
我稍后这样做会丢失数据(如果将任何未写入的数据刷新到 IO 设备)。
系统详情
cat /proc/version
Linux version 5.7.0-arch1-1 (linux@archlinux) (gcc version 10.1.0 (GCC), GNU ld (GNU Binutils) 2.34.0) #1 SMP PREEMPT Mon, 01 Jun 2020 22:54:03 +0000
free -h
total used free shared buff/cache available
Mem: 3.7Gi 1.4Gi 1.4Gi 274Mi 910Mi 1.8Gi
Swap: 4.0Gi 0B 4.0Gi
cat /proc/swaps
Filename Type Size Used Priority
/dev/zram0 partition 4194300 0 -2
频繁运行echo命令来暂停系统是一个好的选择吗?
答案1
我认为主要问题是丢失数据。如果您sync
首先运行,磁盘应该执行任何剩余的 IO 操作,并且数据丢失不应该成为问题。可能有一些应用程序感到困惑,或者系统服务被通知计算机已进入睡眠状态,但我无法想象运行sync
然后修改/sys/power/state
.只要你的机器不是服务器,并且如果它出现异常行为你不介意重新启动它,我认为应该没问题。不过,我总是先跑sync
。