Vraag & Antwoord

OS Linux

Programmaatje in C

6 antwoorden
  • 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
  • Heb je al gekeken of /usr/X11R6/bin/xinit3x bestaat?
  • ik heb xinit en xinit4 Maar waarom zeurt hij daar eigenlijk om? Max
  • Grappig, ik koppel xinit3x aan xinit4, en het werkt :o Max
  • /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?
  • 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

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.