anoniem Geplaatst: 11 augustus 2003 Delen Geplaatst: 11 augustus 2003 Hallo allemaal, Heb een programmaatje opgedoekt waarmee je X tijdens de start ervan een hogere prioriteit kunt geven. Voor zover ik de code kan lezen moet alles goed gaan, maar dat gaat het dus niet, X start niet op omdat ze bepaalde zaken niet meer kan vinden. Alhier het programmaatje: [code:1:bf65117c3a] #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); } [/code:1:bf65117c3a] De compilatie/installatiemethode: [list:bf65117c3a] [*:bf65117c3a] opslaan als wrapper.c. [*:bf65117c3a] compileren met commando [b:bf65117c3a]# $ gcc wrapper.c -o XFree86.wrapper[/b:bf65117c3a] [*:bf65117c3a] kijken of /usr/X11R6/bin/X een symlink is die naar /usr/X11R6/bin/XFree86 verwijst. [*:bf65117c3a] Nu de volgende comando's uitvoeren: [code:1:bf65117c3a] # su # cp XFree86.wrapper /usr/X11R6/bin # cd /usr/X11R6/bin # mv X X- # chown root:root XFree86.wrapper # chmod u+s XFree86.wrapper # ln -s XFree86.wrapper X # exit [/code:1:bf65117c3a] [/list:u:bf65117c3a] Als ik dat gedaan heb en X wil starten, dan gebeurt er dit: [code:1:bf65117c3a] startx -- :1 /usr/X11R6/bin/xinit: line 19: /usr/X11R6/bin/xinit3x: Onbekend bestand of map /usr/X11R6/bin/xinit: line 19: exec: /usr/X11R6/bin/xinit3x: cannot execute: Onbekend bestand of map[/code:1:bf65117c3a] Tja, en waarom wilie opeens niet starten dan?? Max Quote Link naar reactie
anoniem Geplaatst: 11 augustus 2003 Auteur Delen Geplaatst: 11 augustus 2003 Heb je al gekeken of /usr/X11R6/bin/xinit3x bestaat? Quote Link naar reactie
anoniem Geplaatst: 11 augustus 2003 Auteur Delen Geplaatst: 11 augustus 2003 ik heb xinit en xinit4 Maar waarom zeurt hij daar eigenlijk om? Max Quote Link naar reactie
anoniem Geplaatst: 11 augustus 2003 Auteur Delen Geplaatst: 11 augustus 2003 Grappig, ik koppel xinit3x aan xinit4, en het werkt :o Max Quote Link naar reactie
anoniem Geplaatst: 11 augustus 2003 Auteur Delen Geplaatst: 11 augustus 2003 /usr/X11R6/bin/xinit: line 19: /usr/X11R6/bin/xinit3x: Onbekend bestand of map Omdat het op regel 19 van /usr/X11R6/bin/xinit aangeroepen wordt? Quote Link naar reactie
anoniem Geplaatst: 12 augustus 2003 Auteur Delen Geplaatst: 12 augustus 2003 Dat zal wel, maar waarom wordt het normaliter niet aangeroepen tijdens de start van X? Voor zover ik de hier geposte broncode kan lezen roept XFree86.wrapper gewoon XFree86 aan, iets wat anders rechtstreeks door het commando startx wordt gedaan.. Max Quote Link naar reactie
anoniem Geplaatst: 12 augustus 2003 Auteur Delen Geplaatst: 12 augustus 2003 Voor de aardigheid even het bestandje open getrokken: [code:1:7cc6469842] #!/bin/sh function readlink() { ls -l $1|awk '{print $NF}' } XLINK=/usr/X11R6/bin/X while test -L $XLINK; do XLINK=`readlink $XLINK` done case "$XLINK" in *XFree86) exec /usr/X11R6/bin/xinit4 $* ;; *) exec /usr/X11R6/bin/xinit3x $* ;; esac exit 0[/code:1:7cc6469842] Wordt al iets duidelijker :) Max Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen