如何防止非活动用户会话中的自动暂停进程?


14

现在有一段时间,当我在两个用户会话之间切换时,在某些情况下不活动的会话将停止执行GUI进程。这样,我被迫等待另一个会话加载,而无法在另一个会话中执行任何操作,因为如果我在一段时间后切换并返回,它仍然在同一点上。受影响的软件包括rsync,rdiff-backup,KDE后台进程,在Openbox会话中启动Steam(甚至停止下载)以及至少一些游戏。VLC不会受到影响,至少在我切换回来后它会跳到所需的时间,但是有一会儿我可以在其窗口中看到旧的帧和时间。

什么行为负责这种行为?我可以以某种方式重新配置它吗?

更新:内存和交换使用

其他一些情况:具有讽刺意味的是,我建议在旧的Brainstorm.ubuntu.com(现已不存在)上使用这种确切的行为。


1
@Fabby完成了,如果这就是您所暗示的,它看起来就好像不是交换问题。
int_ua 2015年

2
是的,这就是我的意思... ;-)我试图模拟您的行为:以用户身份登录,然后以辅助用户身份登录,开始播放电影,[Ctrl] [Alt对第一个用户使用[F7],对第二个用户启用find打开/[ctrl] [Alt] [F8],一切继续进行...(尽管切换用户时电影的声音被静音了。)你测试吗?
Fabby 2015年

1
@int_ua我不特别了解Steam,但是我有一些包含特定代码的游戏在切换用户时会暂停...我不使用KDE,所以我想我不能再帮您了...对不起!
Fabby

1
通过同时注意切换到另一个用户之前和之后的输出状态,以及通过外部HDD灯停止另一个会话处于活动状态时的所有活动。
int_ua

2
对于rsync您使用verbose打印的进展?您是否尝试过没有它+是否尝试过将其直接发送到后台rsync .... &?怎么nohup rsync .... & 样 对于GUI他们必须暂停,因为只有一个输出资源,它并已被其他用户会话,他们将暂停:)
αғsнιη

Answers:


1

我也遇到了这个问题,因为我会定期在控制台和图形虚拟终端之间切换。Xorg在设计上会在VT切换期间挂起其客户端,这就是为什么Xorg的VT不再活动时其客户端似乎“冻结”的原因。Wayland不支持,因此,如果需要在后台VT中保持运行的程序支持新的显示协议,请使用Wayland合成器而不是Xorg。

解决此问题的一种方法是在本地VNC服务器上运行图形程序,以使它们永远不会挂起。这是我最常使用的解决方法。


0

什么行为负责这种行为?

Display Manager(DM)是您要寻找的产品。任何人:lightdmgdmkdm(旧KDE), sddm(新的KDE),xdm...

我可以以某种方式重新配置它吗?

AFAIK,对于X服务器应该就是这样。但是,我过去使用以下方法来跳过该行为:

  • 另一个虚拟控制台TTY上的CLI工具
  • CLI工具即init服务

关于音频流,当我2006年开始使用GNU / Linux时。音频设备是与Display分开管理的。现在,新的集成设备/端口(如HDMI)发生了特别的变化。因此,Pulse服务器应注意一些X显示事件。我记得(我会再次检查),Pulse服务器作为用户进程运行。


你能证明第一点吗?它在代码中到底有多精确?在很多情况下,不能选择TTY中的CLI,真正的问题是下载和备份,而音频是次要的问题。
int_ua

0

您可以screen使用bash从CLI 启动会话,并且可以在此会话内启动应用程序。现在,您可以顺利关闭此终端并使用screen -r命令进行恢复。大概是这样的:

screen bash
rsync -V xxx yyy

您可以关闭CLI并返回您想要执行的所有操作:

screen -r

确认作业已完成。我不知道这是否可以使用以下命令与GUI应用程序一起使用:

nohup your-X-application &
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.