Problem att starta .service vid omstart (@systemd)

Trädvy Permalänk
Medlem
Registrerad
Nov 2014

Problem att starta .service vid omstart (@systemd)

Jag har följt nedanstående guide för att konfigurera en VNC-anslutning:
https://www.digitalocean.com/community/tutorials/how-to-set-u...
(Guiden gäller visserligen Debian 8 men det bör inte vara några skillnader mot Debian 9 då andra guider listar samma kommandon)

Jag använder dock LXDE och är nöjd med DE osv. så jag skippade allt som involverar XFCE/ikoner/webbläsare och installerade bara tightvncserver. Jag valde även att köra det på min huvudsakliga användare istället för att skapa ett särskilt VNC-konto och har modifierat stegen efter det.

Allting gick utmärkt, det var inga problem att varken installera eller testa anslutningen men jag lyckas inte få skriptet som autostartar VNC-tjänsten att fungera. Kör jag bara 'vncserver' i terminalen så startar den som den ska men det hjälper mig ju inte särskilt mycket när det är en filserver som körs headless och jag är ganska beroende av att tjänsten startar automatiskt för att jag ska kunna ansluta till datorn.

Jag har som sagt följt guiden och det går att starta tjänsten manuellt och när jag kör systemctl start myvncserver.service får jag inga felmeddelanden (läs: ingen respons) så jag antar att det är korrekt konfigurerat men trots detta går det inte att ansluta via VNC utan att jag startar tjänsten manuellt. Vad kan felet bero på? Måste jag göra några ändringar till /.vnc/xstartup som det hänvisas till trots att det inte nämns i guiden och vad är det i så fall som ska läggas till?

#!/bin/sh exec /usr/bin/lx-session

?

Det är säkert någon löjligt lätt sak som jag missar men jag är helt ny både inom GNU/Linux överlag och särskilt Debian och skulle uppskatta om någon kan ge mig lite tips i rätt riktning. Är skillnaden mellan en service och ett shell script att det förstnämnda alltid startar vid boot (om inget annat anges) ? Är ovanstående likvärdigt en daemon i avseendet att tjänsten startas vid boot oavsett om någon användare är inloggad osv? Jag antar det då systemctl fyller samma funktion, dvs. uppstart vid boot?

Jag har försökt läsa på lite men det är rätt tung läsning när man inte är bekant med hur systemet är uppbyggt, termer som används osv. men jag är villig att lära mig.

Lenovo X1 Carbon / ASUS PB278Q 1440p

Trädvy Permalänk
Medlem
Registrerad
Nov 2014

● myvncserver.service - Manage VNC Server on this droplet Loaded: loaded (/lib/systemd/system/myvncserver.service; enabled; vendor preset: enabled) Active: inactive (dead) since Tue 2018-02-27 10:43:08 CET; 11s ago Process: 2920 ExecStop=/usr/local/bin/myvncserver stop (code=exited, status=0/SUCCESS) Process: 2913 ExecStart=/usr/local/bin/myvncserver start (code=exited, status=0/SUCCESS) Feb 27 10:43:08 debian systemd[1]: Starting Manage VNC Server on this droplet... Feb 27 10:43:08 debian myvncserver[2913]: You will require a password to access your desktops. Feb 27 10:43:08 debian myvncserver[2913]: Password: Password too short Feb 27 10:43:08 debian myvncserver[2920]: Can't find file /root/.vnc/debian:1.pid Feb 27 10:43:08 debian myvncserver[2920]: You'll have to kill the Xtightvnc process manually Feb 27 10:43:08 debian systemd[1]: Started Manage VNC Server on this droplet.

Det här är den output jag får om jag kör 'sudo service myvncserver status' så det verkar som att jag måste konfigurera något under /.vnc men vad och hur?

Lenovo X1 Carbon / ASUS PB278Q 1440p

Trädvy Permalänk
Medlem
Registrerad
Jan 2007

Det ser ut som tjänsten körs som root och inte som användaren vnc. Jag förstår det som den ska konfigureras och köras som användaren vnc enligt guiden.

Trädvy Permalänk
Medlem
Registrerad
Nov 2014
Skrivet av egon2003:

Det ser ut som tjänsten körs som root och inte som användaren vnc. Jag förstår det som den ska konfigureras och köras som användaren vnc enligt guiden.

Tack för din respons men vad är det som gör att den körs som root? Jag har som sagt följt guiden och ändrat vnc till mitt eget användarnamn i de fall användarnamn anges och kan inte riktigt klura ut vad det är som gör att det körs som root istället för från mitt privata konto. Enligt guiden ska de flesta kommandon köras med sudo vilket bör innebära att de körs med rootbehörighet (!= som 'användaren' root?).

Även om jag hade kört su root eller sudo -i blir väl slutresultatet detsamma, enda skillnaden är väl att med sudo kör jag alla kommandon från det egna kontot fast med upphöjda rättigheter?

Nu pekar ju skriptet på saknade filer under /root/.vnc/ och att något lösenord i konfigurationen (vilken konfig? gissningsvis under /usr/local/bin/myvncserver eftersom det är det enda .servicen innehåller) är felaktig men bortsett från det, vad spelar det för roll om det körs som root? En service som körs via systemctl ska väl alltid startas automatiskt vid boot oavsett vilka användare som är aktiva, eller?

Jag är som sagt helt ny inom GNU/Linux och har inga problem att lägga ner tid på att felsöka själv och därmed lära mig men det är väldigt svårt när man inte har en aning var man ska börja eller vad det är man letar efter...

Det finns väl inget rootkonto som default i Debian? Jag valde att inte skapa något sådant under installationsprocessen och det kanske är just avsaknaden av root som orsakar problemen ifall guiden utgår från att man faktiskt har ett konfigurerat rootkonto och att tjänsten körs från detta konto?

Nu blir det många frågor på en och samma gång men vad gör egentigen ett kommando som sudo -i om man inte ens har något rootkonto? Om man kör kommandot får man knappa in det egna lösenordet och i terminalen ändras användarnamnet till root men gör det någon som helst skillnad? Mvh, förvirrad newbie.

Dold text

Lenovo X1 Carbon / ASUS PB278Q 1440p

Trädvy Permalänk
Medlem
Registrerad
Nov 2014

Kan det vara så enkelt som att konfigurationsfilen ligger på fel ställe? Guiden nämner att skriptet ska skapas och läggas som /usr/local/bin/myvncserver men i själva skriptet hänvisas till /usr/bin/vncserver (som bara är en 'readme' för hur man konfigurerar olika funktioner).

Lenovo X1 Carbon / ASUS PB278Q 1440p

Trädvy Permalänk
Medlem
Registrerad
Jan 2007

Ett root konto finns alltid i linux. Det brukar dock vara spärrat för inloggning som standard tror jag i de flesta distributioner.
Du kan tex bli root genom att köra "sudo su -" om du vill slippa skriva sudo före varje kommando, "sudo -i" är förmodligen samma sak. När du kör ett kommando med sudo kommer det att köras som root.

Har du lagt till användaren som tjänsten ska köras som i /lib/systemd/system/myvncserver.service?
tex "User=vnc"

Om det fungerar när du manuellt startar tjänsten och du är inloggad som den användaren det ska köras som ligger förmodligen konfigurationsfilen på rätt ställe.

Du kan köra kommandot "whoami" för att ta reda på vilken användare du är för tillfället.

Trädvy Permalänk
Medlem
Registrerad
Nov 2014
Skrivet av egon2003:

Ett root konto finns alltid i linux. Det brukar dock vara spärrat för inloggning som standard tror jag i de flesta distributioner.

Har du lagt till användaren som tjänsten ska köras som i /lib/systemd/system/myvncserver.service?
tex "User=vnc"

Om det fungerar när du manuellt startar tjänsten och du är inloggad som den användaren det ska köras som ligger förmodligen konfigurationsfilen på rätt ställe.

Du kan köra kommandot "whoami" för att ta reda på vilken användare du är för tillfället.

Edit: Pinsamt! Det var precis det här som orsakade felet. Jag kan svära till 100% på att jag matade in mitt eget användarnamn men nu stod det root som användare. Varför ändrades det?

Jag kanske försökte ändra i inställningarna medan tjänsten kördes eller något liknande nybörjarmisstag. Ev. ett missat sudo systemctl daemon-reaload?

Hur som helst fungerar det som det ska nu och jag är väldigt tacksam för hjälpen.

Lenovo X1 Carbon / ASUS PB278Q 1440p