在 linux (bullseye 11, kde) 中,防止进程进入睡眠状态。
问题:当我离开几个小时后再回到电脑前时,我需要 10-20 分钟才能将鼠标调整到可以使用的状态。尤其是那些必不可少的过程。例如,在 lxterminal 中,当鼠标有下载(连续)视频的任务时,它会在 10-20 分钟后做出响应!!!Firefox、dolphin 等也是如此。
我不想为了使用 Firefox、lxterminal、鼠标等而等待 10-20 分钟。我想阻止这些进程永远进入睡眠状态!我不知道该怎么做。
我所做的(它们不会阻止进程休眠):
sudo systemctl mask sleep.target
sudo systemctl mask suspend.target
sudo systemctl mask hibernate.target
sudo systemctl mask hybrid-sleep.target
sudo gsettings set org.gnome. sudo gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing' settings-daemon.plugins.power sleep-inactive-battery-timeout 0
sudo setterm -blank 0 -powersave off -powerdown 0
另外,我还从所有 USB 磁盘和 USB 集线器中删除了自动挂起功能powertop
(从良好状态到不良状态)。
我不知道如何防止进程休眠并使我的台式计算机再次可用!这非常烦人。如果有任何程序可以连续向进程发送 CONT 信号,或者任何其他方法可以防止进程休眠,请告诉我。
请注意,内存约为 6/16GB,交换空间也很低(3GB/16GB),但 CPU 进程几乎达到 100%。当我尝试移动鼠标时,我发现 CPU 进程从 100% 降至 70% 或更低。这意味着尝试降低“某些东西”以释放“处理能力”。这需要很多时间。因为我在很多硬盘上下载了很多东西,所以 I/O 进程也很高。我认为当我不积极使用计算机时,它会将“软件”中的“CPU 能力”转移到“I/O 磁盘”进程上。请注意,当我使用计算机时,不存在这样的问题。
但是,这是用错误的方式做的。我不知道如果我操纵进程优先级会产生什么影响。Linux 必须赋予用户阻止进程进入睡眠状态(部分或全部)的权力。
,g$$$$$$$$$$$$$$$P. ------------
,g$$P" """Y$$.". OS: Debian GNU/Linux 11 (bullseye) x86_64
,$$P' `$$$. Host: B85M-HD3 R4
',$$P ,ggs. `$$b: Kernel: 5.11.0-18-generic
`d$$' ,$P"' . $$$ Uptime: 26 days, 23 hours, 51 mins
$$P d$' , $$P Packages: 6834 (dpkg), 9 (flatpak)
$$: $$. - ,d$$' Shell: bash 5.1.4
$$; Y$b._ _,d$P' Resolution: 1920x1080
Y$$. `.`"Y$$$$P"' DE: Plasma 5.21.4
`$$b "-.__ WM: KWin
`Y$$ Theme: Breeze Light [Plasma], Breeze [GTK2], Adwa
`Y$$. Icons: breeze [Plasma], breeze [GTK2/3]
`$$b. Terminal: lxterminal
`Y$$b. Terminal Font: Monospace 10
`"Y$b._ CPU: Intel i5-4570S (4) @ 3.600GHz
`""" GPU: NVIDIA GeForce GT 1030
Memory: 6059MiB / 15961MiB
答案1
我采用了那个脚本,但它没有多大帮助,但有一点:请用相关进程的实际数量替换 PID 数量。
您可以关闭您可能忘记打开的程序以减少内存和进程能力。如果您不想使用 PID 而是使用进程名称,您可以用 pkill 替换 kill。
while true
do
# Sending continuation signals to process in order to prevent them from sleep.
# somewhat succesfull
#plasmashell
sudo kill -SIGCONT 1113
#lxterminal
sudo kill -SIGCONT 1112
#kwin_x11
sudo kill -SIGCONT 1111
#kded5
sudo kill -SIGCONT 1114
# usb hubs
sudo kill -SIGCONT 66682
sudo kill -SIGCONT 69861
sleep 20 #or find Timecount function to replace sleep.
#Kill processes by name that you may forgot open before eg. sleep
sudo pkill -SIGKILL thunderbird
sudo pkill -SIGKILL shutter
done
更新(无论如何上述脚本都没有运行)
- 案例1:打开2个终端(wget下载)+qbittorent+系统监视器
- 案例2:打开2个终端(wget下载)+qbittorent+系统监视器
- 在第 1 种情况中,我在睡觉前在系统监视器的搜索栏中输入了“usb”,并显示了 usb 存储进程。只要我这样做了,醒来后使用电脑时就不会出现“停止”或严重的“延迟”。我这样做是为了观察这些进程何时进入睡眠状态。
- 在案例 2 中,在我睡觉之前,搜索栏中没有写入“usb”,并且当我离开床走到我的电脑前时,我遇到了鼠标移动“滞后”的情况并且无法执行一些操作,例如移动窗口、打开某些东西等。
我可以建议系统监视器向搜索栏中找到的进程发送一些特殊信号,以防止它们以某种方式产生滞后吗?不知道……