+ -
当前位置:首页 → 问答吧 → 改变X运行的优先权

改变X运行的优先权

时间:2004-04-17

来源:互联网

以前用RH,现在觉得用SLACKWARE爽一点,不过我总觉得SLACK 上面的WINDOWS MANAGER 有点延迟,就是说画面好像玩大型的游戏时,系统有点慢的样子,这是什么原因呢?在RH上可没有这种感觉啊。

作者: hanzixing   发布时间: 2004-04-17

nautilous?是有点耗费资源,不过也很快的哦,可以用xfm,才耗2兆内存,只是有点不爽:)

作者: dreamawake   发布时间: 2004-04-17

dreamawake兄,好像不关nautilus的事吧,我用fvwm也有这种现象,不过没有在gnome上那么严重。

作者: hanzixing   发布时间: 2004-04-18

这个问题我想应该是slackware 默认的X 优先权比较低,导致对于鼠标和键盘的响应不够及时。可以用重新设定:
renice -10 (X PID)
(X PID) 是你的X 的进程id, ps -aux|grep X 可以查。

作者: reinf   发布时间: 2004-04-19

ps -aux|grep X后显示如下:

root 1321 0.0 0.4 5348 1200 tty1 S 17:25 0:00 /bin/sh /usr/X11R6/bin/startx
root 1333 8.6 8.0 56832 20472 ? S< 17:25 0:29 X :0
root 1418 0.0 0.2 4740 708 pts/0 S 17:31 0:00 grep X
请教reinf兄,上面的的结果是问题所在吗?我应该怎样去调呢?

作者: hanzixing   发布时间: 2004-04-19

不像优先权问题

作者: 南汇水蜜桃   发布时间: 2004-04-19

> root 1321 0.0 0.4 5348 1200 tty1 S 17:25 0:00 /bin/sh /usr/X11R6/bin/startx
> root 1333 8.6 8.0 56832 20472 ? S< 17:25 0:29 X :0
> root 1418 0.0 0.2 4740 708 pts/0 S 17:31 0:00 grep X

第二行的那个1333是X的进程号,就用:
renice -10 1333

当然每次启动那个号码会变动的。至于究竟能不能解决问题,我不敢保证,X缓慢的原因很多,只是在我的slack上还有不错的效果。

作者: reinf   发布时间: 2004-04-20

非常感谢reinf兄,照你的方法做了,感觉果然好很多!
为什么以前的SLACKER没有提这个问题呢?
是不是每次开机都要调,或者有没有更好的办法?

作者: hanzixing   发布时间: 2004-04-20

这个问题,可以加一个X server的外层,让他启动X的时候自动设定优先权。
代码摘自gentoo论坛,仅在我的机器上测试过。
首先,创建一个新的名为wrapper.c的文件,内容如下:
PHP 代码:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>

const char *app = "/usr/X11R6/bin/XFree86";   // the actual binary
const int root = 0;   // root's uid
const int n = -10;    // desired nice priority valid range -20..20.

int main(int argc, char **argv)
{
  seteuid(root);    // The X server must be started as root under any Linux
  nice(n);          // Makes it nice
  execv(app, argv); // This is it!
  /* Should never see this unless *app points to invalid binary */
  fprintf(stderr, "Failed to execv %s with nice value of %d\n", app, n);
  exit(1);

然后编译(井号是提示符,勿输入):
# gcc wrapper.c -o XFree86.wrapper

将刚才写的那个wrapper替代原来的X:
PHP 代码:
# su root
# cp XFree86.wrapper /usr/X11R6/bin
# cd /usr/X11R6/bin
# rm X
# chown root XFree86.wrapper
# chmod u+s XFree86.wrapper
# ln -s XFree86.wrapper X 
最后退出X, 再重新进入。

作者: reinf   发布时间: 2004-04-20

再一次感谢reinf兄

作者: hanzixing   发布时间: 2004-04-20