A9VG电玩部落论坛

 找回密码
 注册
搜索
查看: 12981|回复: 23

[技巧攻略] 一种 PC 串流服务器秒级暂停/恢复思路

[复制链接]

版主

己所不欲,勿施于人

精华
0
帖子
5924
威望
0 点
积分
7070 点
种子
1947 点
注册时间
2018-5-8
最后登录
2026-4-2
 楼主| 发表于 2025-12-2 10:15  ·  北京 | 显示全部楼层 |阅读模式
书接上文:https://bbs.luryl.com/thread-9039926-1-1.html,我在 Linux 环境搭建了一套专门的 PC 游戏串流服务器,里面使用了 docker pause/unpause 来暂停容器,从而实现游戏的暂停和恢复,但是这个方案的缺点是如果暂停之前不杀掉 Sunshine 进程,则显卡不能进入 P8 低功耗模式,功耗还是很高,而杀掉 Sunshine,在恢复的时候会出现各种问题,恢复也很慢,导致实际体验并不理想。

最近突然想到为什么不干脆使用 Linux 自己的 SIGSTOP/SIGCONT 信号机制来暂停和恢复 Steam 进程以及所有的子进程(包括游戏)呢,所以写了一个新的脚本进行测试,实际的体验还挺不错。脚本地址:https://gist.github.com/ihainan/20cc4666a30bf5f7336cfff3a2b29f30

原理大家可以理解成,Linux 下有一个命令可以冻结一个应用,也有一个命令可以取消冻结一个应用。之所以我们要把 Steam 一起冻结,是为了让 Steam 的游戏时间统计也跟着暂停,而且 Steam 一个账号在多个设备只允许同时运行一个游戏,我们要避免暂停期间其他设备无法游戏。

实际测试效果如视频,恢复和暂停都是 1s 之内。



我先把代价说出来:因为没有对整个容器进行暂停,内核时间还在正常走,一些游戏,比如 P3R,存档统计时间是物理时间,你暂停的时间也算在内。理论上这个问题也可以通过伪造进程时钟(比如使用 libfaketime)来解决,但是我需要时间去研究。

那么优点是什么呢:

首先自然是秒级的暂停和恢复,非常快。其次是很稳定,我使用了一周多了,方便 P3R 爬塔随时待机,目前没遇到什么问题。其他优点与 docker pause 方案一致,比如运行期间的低功耗。



如上,跟大家分享最近串流服务器暂停/恢复的新思路。

版主

己所不欲,勿施于人

精华
0
帖子
5924
威望
0 点
积分
7070 点
种子
1947 点
注册时间
2018-5-8
最后登录
2026-4-2
 楼主| 发表于 2025-12-2 10:22  ·  北京 | 显示全部楼层
顺便我最近在开发 AutoActions(参见之前我发的主题 https://bbs.luryl.com/thread-8914060-1-1.html)的一个跨平台替代,我希望能够进一步做到比如游戏自动化应用某个操作级,不用每次都手工添加。而且做了一个插件商店,大家有特殊的需求我也可以随时编写新的插件来实现。待测试没问题之后再开源和分享给大家。



版主

己所不欲,勿施于人

精华
0
帖子
5924
威望
0 点
积分
7070 点
种子
1947 点
注册时间
2018-5-8
最后登录
2026-4-2
 楼主| 发表于 2025-12-2 10:53  ·  北京 | 显示全部楼层
顺便分享我目前的主力串流机 Pocket Fit,非广告,最近又喜欢上小屏了。缺点是非常容易沾指纹和积灰,北京更是如此。START 按键会被遥杆挡住,每次按都很麻烦。屏幕不是 OLED(当然对有些人是优点)。



之前入过 PS Portal,啥都好,就是码率实在是太低,后来还是给出掉了。

版主

己所不欲,勿施于人

精华
0
帖子
5924
威望
0 点
积分
7070 点
种子
1947 点
注册时间
2018-5-8
最后登录
2026-4-2
 楼主| 发表于 2025-12-2 15:16  ·  北京 | 显示全部楼层
techan 发表于 2025-12-2 15:11
去掉摇杆键帽是不是会好些

单纯刚好有就套上去了,不影响使用。

版主

己所不欲,勿施于人

精华
0
帖子
5924
威望
0 点
积分
7070 点
种子
1947 点
注册时间
2018-5-8
最后登录
2026-4-2
 楼主| 发表于 2025-12-2 17:58  ·  北京 | 显示全部楼层
techan 发表于 2025-12-2 15:11
去掉摇杆键帽是不是会好些

嗷我知道坛友意思了,是说挡住 START 按键,哈哈哈我这就去掉摇杆帽试试哈哈。

版主

己所不欲,勿施于人

精华
0
帖子
5924
威望
0 点
积分
7070 点
种子
1947 点
注册时间
2018-5-8
最后登录
2026-4-2
 楼主| 发表于 2025-12-3 10:23  ·  北京 | 显示全部楼层
顺便插播一个小知识,目前 Linux 端 Proton 是支持 Nvidia 显卡的 DLSS 超采样和帧生成的,但是大概率应该还不支持 50 系的多帧生成。

版主

己所不欲,勿施于人

精华
0
帖子
5924
威望
0 点
积分
7070 点
种子
1947 点
注册时间
2018-5-8
最后登录
2026-4-2
 楼主| 发表于 2025-12-3 10:24  ·  北京 | 显示全部楼层
techan 发表于 2025-12-2 15:11
去掉摇杆键帽是不是会好些

确实没那么挡了,感觉自己是真的**。

版主

己所不欲,勿施于人

精华
0
帖子
5924
威望
0 点
积分
7070 点
种子
1947 点
注册时间
2018-5-8
最后登录
2026-4-2
 楼主| 发表于 2025-12-5 09:54  ·  北京 | 显示全部楼层

有一定门槛,所以我干脆也不做成教程的方式了,只提供效果和脚本给了解的人直接使用。

我自己用了半个多月了,可以说是我自己觉得最舒服的串流方式,从拿起掌机到开玩不到 5s,暂停更是 2s 的事情,非常舒服。

版主

己所不欲,勿施于人

精华
0
帖子
5924
威望
0 点
积分
7070 点
种子
1947 点
注册时间
2018-5-8
最后登录
2026-4-2
 楼主| 发表于 2026-1-3 10:08  ·  北京 | 显示全部楼层
techan 发表于 2025-12-22 22:36
求教版主,你这个掌机串流体验如何,我目前是用iPad pro 或是 xbox 在玩永恒之塔2,两个设备都被客户端那边 ...

坛子最近又不给我通知消息了。最近折腾比较多,串流折腾完又想看看 SteamOS 的表现(而且 Android PC 模拟器的表现我有点失望,稍微非 2D 的独立游戏在 1080p 下帧数都不是特别理想,我又不想用 720p 玩),所以卖了 Pocket Fit 先后入了两台 Windows 掌机。之后再跟大伙分享给这两台机器的感受好了。

版主

己所不欲,勿施于人

精华
0
帖子
5924
威望
0 点
积分
7070 点
种子
1947 点
注册时间
2018-5-8
最后登录
2026-4-2
 楼主| 发表于 2026-1-3 10:09  ·  北京 | 显示全部楼层
o_sharp 发表于 2025-12-27 14:44
SYSSTOP应该就是steam deck的暂停机制?

Steam Deck 的休眠/睡眠应该还是传统的,但是 Decky 插件 Pause Games 使用的是 SYSSTOP。

https://github.com/popsUlfr/SDH-PauseGames

It sends the SIGSTOP signal to all the children of the reaper process to stop the execution and SIGCONT to resume them. (Signal (IPC))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|A9VG电玩部落 川公网安备 51019002005286号

GMT+8, 2026-4-2 15:30 , Processed in 0.077418 second(s), 12 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部