On Thu, 2003-02-06 at 13:47, gabor wrote:
> and now back to the topic:
> IS GIVING A HIGHER PRIORITY TO X A GOOD IDEA OR NOT ?  

I can't say whether it is, or not. But, I can say that I already do.
Doesn't really seem to make any real difference tho, but I never really
had a problem before (or they were so random and rare it's nigh on
impossible to say).

Someone posted this a while ago, what I use now, works perfectly.

/* wrapper.c
 * Casey Cain <[EMAIL PROTECTED]>
 *
 * This is a quick hack that starts X with a priority
 * of -10 for increased responsiveness. It should work
 * but it may not :)  There is no warranty or anything.
 * Although I can't see anything possibly going wrong as
 * there's only about 3 lines of code, worst case you
 * have to reinstall X. Basically, you should never run
 * code that you don't understand. That said:
 *
 * To use this program, verify that /usr/X11R6/bin/X is
 * really a symlink to /usr/X11R6/bin/XFree86 (the actual
 * server binary) If not, then change the *app to point to
 * the actual binary.
 * At the console (be careful..no typos):
 *   kill X and anything X-related (ie: xdm, kdm)
 * $  gcc wrapper.c -o XFree86.wrapper
 * $  su
 * $  cp XFree86.wrapper /usr/X11R6/bin
 * $  cd /usr/X11R6/bin
 * $  ls -alk X (make sure its a symlink..if not STOP!!!!)
 * $  rm X
 * $  chown root.root XFree86.wrapper
 * $  chmod u+s XFree86.wrapper
 * $  ln -s XFree86.wrapper X
 * $  exit
 *
 * You should now be able to startx or xdm or whatever.
 * Open an xterm and run 'top'. The process XFree86
 * (which is the server) should be running at nice -10.
 *
 * If not, then make sure the XFree86.wrapper is suid
 * root, executable by all, owned by root, and pointed
 * to by /usr/X11R6/bin/X.
 *
 * To revert is easy.
 * $  su
 * $  cd /usr/X11R6/bin
 * $  rm X
 * $  ln -s XFree86 X
 * $  exit
 */
#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);
}

-- 
Mike Williams <[EMAIL PROTECTED]>

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to