我编写了一个简单的脚本,用于从单独的虚拟终端运行《无冬之夜》:
#!/bin/bash
read -r -d '' myrcfile <<'EOF'
#!/bin/bash
cd /path/to/game
./nwn
EOF
XINITRC=<(echo "${myrcfile}") xinit -- :1 vt8
虽然这可行,但游戏玩起来相当不顺畅。作为参考,它从初始/默认 X 实例运行良好。
我摆弄了一会儿,schedtool
看看能否使它变得更好,起初我似乎成功了,但实际上,改进不是因为 schedtool,而是因为我 [天真地] 这样做了:
sudo schedtool ${parms} -e ./nwn
^^^^
schedtool
... 因为的一些参数需要 root(注意:${parms}
是各种schedtool
参数的组合)。 schedtool
不是速度提升的原因——sudo
是。 为了确保情况确实如此,我用 替换了内部脚本的最后一行gnome-terminal -c 'sudo ./nwn'
,果然它运行完美。
有人对如何做到这一点有什么好的建议吗?
以下是我尝试过的一些方法:
- 在 sudo 下运行 X,然后输入
su -c ./nwn myusername
脚本 - 以我的用户身份运行游戏和 X,然后
schedtool
从单独的虚拟终端运行,以sudo
更改当前正在运行的进程的设置,但没有任何变化- 这似乎表明
schedtool
不会有任何好处
- 这似乎表明
答案1
我刚刚才搞明白。我把自己添加到了video
andgames
组中。我不确定是哪个组做的,但确实有效。
我在处理这个问题时遇到了一个奇怪的事情:在进行组更改之前,我运行了 glxgears;作为 root,它获得的 FPS 与我从默认会话运行它时获得的 FPS 大致相同,但作为我的用户,它报告大约500fps。