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
Hvordan får jeg et program til at starte sammen med Ubuntu?
-
- Indlæg: 12
- Tilmeldt: 19. dec 2010, 18:27
-
- 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
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