Hvordan får jeg et program til at starte sammen med Ubuntu?

Få hjælp til at sætte programmer eller funktioner op.
thors24
Indlæg: 12
Tilmeldt: 19. dec 2010, 18:27

Hvordan får jeg et program til at starte sammen med Ubuntu?

Indlæg af thors24 »

Hej
Hvordan får jeg et program til at starte sammen med Ubuntu? Jeg kan kører programmet fra terminalen, men jeg ønsker at det starter automatisk når ubuntu booter/er startet.

I terminalen skriver jeg: java -jar /home/brian/PRemoteDroid-Server.jar
Jeg har prøvet at skrive det samme i system/indstillinger/opstartsprogrammer - feltet kommando, men det giver ikke noget resultat. Jeg har også prøvet "Husk programmer der kører nu" knappen, men det starter kun terminalen.
Hvordan gør jeg?

Brian
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Hvordan får jeg et program til at starte sammen med Ubun

Indlæg af lath »

thors24 skrev:Hej
Hvordan får jeg et program til at starte sammen med Ubuntu? Jeg kan kører programmet fra terminalen, men jeg ønsker at det starter automatisk når ubuntu booter/er startet.

I terminalen skriver jeg: java -jar /home/brian/PRemoteDroid-Server.jar
Jeg har prøvet at skrive det samme i system/indstillinger/opstartsprogrammer - feltet kommando, men det giver ikke noget resultat. Jeg har også prøvet "Husk programmer der kører nu" knappen, men det starter kun terminalen.
Hvordan gør jeg?

Brian


Jeg kan se at det er et server program. Server programmer er meget sjældent grafiske programmer. Hvis det starter i en terminal må du ikke lukke terminalen, for afslutter de programmer terminalen har åbnet også. Der findes dog tricks til at undgå det.

Herunder har jeg en metode til at starte noget op ved boot.
Du skal lige vide at det her ikke er den rigtige måde at gøre det på (du vil ikke kunne se servicen i System > Administration > System Jobs). Det er fordi at jeg er doven og ikke gider skrive et upstart script til dig.)

De følgende kommandoer er Terminal kommandoer
  • Du skal indsætte programmet i /etc/rc.local filen
  • Først skal du tage backup af filen før du piller i den, for så kan du altid undo en ændring ved simpelthen at overskrive /etc/rc.local med backup-kopien af den oprindelige /etc/rc.local fil
    Backup laver du således:

    Kode: Vælg alt

    sudo cp /etc/rc.local /etc/rc.local_backup

    Bliver det nødvendigt reetablerer du den oprindelige /etc/rc.local med denne kommando:

    Kode: Vælg alt

    if [ -e "/etc/rc.local_backup" ] then sudo cp -f /etc/rc.local_backup /etc/rc.local; else echo -e "Backup-filen /etc/rc.local_backup findes ikke"; fi
  • Åbn /etc/rc.local med superbrugerrettigheder:

    Kode: Vælg alt

    sudo gedit /etc/rc.local
  • Indsæt følgende kodelinie: som sidste linie, hvor du erstatter <brugernavn> med dit eget brugernavn.

    Kode: Vælg alt

    /bin/su - -c "/usr/bin/nohup /usr/bin/java -jar /home/brian/PRemoteDroid-Server.jar" <brugernavn>

    • su kommandoen skifter rettigheder fra superbruger til rettighederne svarende til dit brugernavn. (Når der ikke er nogen grund til at dit program kører med superbruger rettigheder, så må det ikke køre med superbrugerrettigheder)
    • nohup laver en detach fra shell der afvikler /etc/rc.local scriptet.
    • At detache en proces er at lade programmets forældrer blive til init (proces nr 1).
    • En detach forhindrer at programmet lukker ned, når scriptet er færdig.

/Lars

Edit: rettet fra sys v init scripts til upstart script - som bruges på ubuntu nu
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags