autostart, script, ssh-server

ycc
Inlägg: 1818
Blev medlem: 10 feb 2007, 04:08
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Kontakt:

autostart, script, ssh-server

Inlägg av ycc »

Jag har ssh-server installerad i Feisty 7.04. Den startas automatiskt när Ubuntu startar. Jag kan slå av den med:

Kod: Markera allt

sudo /etc/init.d/ssh stop
<sudo-pwd>
Jag har provat att lägga till samma kommando under "system, inställnigar, sessioner" men servern är ändå igång när Ubuntu startar.

Jag har provat att i mappen /usr/share/gnome/autostart lägga till en körbar fil med innehållet:

Kod: Markera allt

#!/bin/bash
/etc/init.d/ssh stop
servern är ändå igång när datorn startar (och kör gnome)

Lägger jag följande fil på skrivbordet och "kör i terminal" så stängs servern på önskat sätt. Jag måste dock förstås fylla i <sudo-pwd> om jag inte gjort det på en stund:

Kod: Markera allt

#!/bin/bash
sudo /etc/init.d/ssh stop
Väljer jag däremot "kör" (inte "kör i terminal") så fungerar det inte.

Jag har flera frågor:
1. Jag får inte kommandot "/etc/init.d/ssh stop" att fungera automatiskt när datorn startar, trots att det ligger i "system, inställnigar, sessioner".
2. Vilken är skillnaden mellan "kör" och "kör i terminal"?
3. Går det att lägga till en skriptfil till "/usr/share/gnome/autostart" om den innehåller kommandon som kräver sudo-lösenord?
4. Hur ser jag om SSH-servern är igång eller ej? (Nu har jag bara provat att logga in från datorn bredvid.) Vilket kommando visar om servern är aktiv?

Tacksam för råd :)
Senast redigerad av 1 ycc, redigerad totalt 1 gånger.
Ubuntu/Linux - Grunder: En introduktion till Ubuntu och Linux
Ubuntu/Linux - Basics: An introduction to Ubuntu and Linux (experimental, automated translation)
Användarvisningsbild
DrMegahertz
Inlägg: 296
Blev medlem: 06 maj 2006, 14:37
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Södra Dalarna

SV: autostart, script, ssh-server

Inlägg av DrMegahertz »

1.) Kommandot fungerar inte för att du måste vara root för att få stoppa tjänster, och root kräver sudo, och sudo kräver i sin tur ett lösenord, som du aldrig matar in när du kör scriptet genom sessioner.

2.) Skillnaden mellan "Kör" och "Kör i terminal" är precis vad det låter som, när du väljer "Kör" så körs bara programmet rakt upp och ned, men om du väljer "Kör i terminal" så kommer en terminal att öppnas och sedan så körs programmet i terminalen. För att starta program som man vanligtvis kör i terminalen, såsom "nano" så måste du välja "Kör i terminal" för att du ska kunna använda nano. Annars kommer nano bara att köras i bakgrunden och du har ingen terminal att knacka in text i. Prova gärna att köra nano på båda sätten så får du se själv.

3.) Visst kan du lägga dit scripten, men dom kommer ju inte fungera som du vill eftersom sudo kräver ditt root-lösenord. Testa med "gksu kommando" så kommer det komma upp en liten ruta som du kan knacka in ditt lösenord i.

Och för att inaktivera SSH så finns det faktiskt ett smidigare sätt, gå på System -> Administration -> Tjänster, scrolla dig fram till SSH och bocka ur rutan så kommer ssh-servern inte starta när datorn startar! :)
BildAre you shpongled? Bild
ycc
Inlägg: 1818
Blev medlem: 10 feb 2007, 04:08
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Kontakt:

SV: autostart, script, ssh-server

Inlägg av ycc »

@DrMegahertz: Tack för utförligt svar.
DrMegahertz skrev: System -> Administration -> Tjänster, scrolla dig fram till SSH och bocka ur rutan ...
Det löste det "akuta problemet" ;)

Om jag anger sudo-lösenord så gäller väl det en stund framåt. (Är det 15 minuter?) Men här verkar det tydligen skilja mellan "kör" och "kör i terminal". Trots att inget lösenord borde krävas så är det bara "kör i terminal" som fungerar.
DrMegahertz skrev: För att starta program som man vanligtvis kör i terminalen, såsom "nano" så måste du välja "Kör i terminal" för att du ska kunna använda nano. Annars kommer nano bara att köras i bakgrunden och du har ingen terminal att knacka in text i. Prova gärna att köra nano på båda sätten så får du se själv.
Jaha, så "kör" motsvarar alltså "kör i bakgrunden". Jag fick inte igång nano med dubbelklick (så att alternativen "kör", "kör i terminal" kommer upp). Jag hittade dock bara binärfilen /bin/nano. Det kanske finns någon annat sätt att prova?
Startar jag i terminalen med "nano &" så händer ju inget. (Kan bara tas bort med "kill -SIGKILL ####") Går det att få en hel skriptfil att exekvera i bakgrunden om man vill?

Så det finns inget enkelt sätt att köra scriptfiler under autostart (ex i /usr/share/gnome/autostart) om dom innehåller kommandon som kräver sudo?

Jag undrar också: Vilket kommando gör jag för att från datorn kunna se om servern är igång?

Tack för tipsen :)
Senast redigerad av 1 ycc, redigerad totalt 1 gånger.
Ubuntu/Linux - Grunder: En introduktion till Ubuntu och Linux
Ubuntu/Linux - Basics: An introduction to Ubuntu and Linux (experimental, automated translation)
Användarvisningsbild
DrMegahertz
Inlägg: 296
Blev medlem: 06 maj 2006, 14:37
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Södra Dalarna

SV: autostart, script, ssh-server

Inlägg av DrMegahertz »

Jaha, så "kör" motsvarar alltså "kör i bakgrunden".
Nej det var dumt formulerat av mig.  :-X

Programmet körs, men du ser det inte, och program som kräver en terminal avslutas direkt. Vi gör ett litet experiment;

Genom att trycka Alt+F2 så får du upp dialogen "Kör program", skriv in "nano" och tryck på kör. Som du märker, så händer ingenting, dialogen försvinner bara och lämnar ingenting efter sig, men vi startade faktiskt nano, men processen avslutades när den upptäckte att den inte startades i en terminal. Men om du upprepar processen en gång till och markerar rutan "Kör i terminal" så borde ett terminalfönster med nano dyka upp när du trycker på kör.
BildAre you shpongled? Bild
Okänd
Inlägg: 30172
Blev medlem: 03 mar 2008, 01:30
OS: Ubuntu

SV: autostart, script, ssh-server

Inlägg av Okänd »

Installera rcconf

Kod: Markera allt

sudo apt-get install rcconf
Där kan du enkelt bocka av ssh-servern ocha andra "tjänster" från att starta automatiskt genom att skriva:

Kod: Markera allt

rcconf
Senast redigerad av 1 Okänd, redigerad totalt 1 gånger.
ycc
Inlägg: 1818
Blev medlem: 10 feb 2007, 04:08
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Kontakt:

SV: autostart, script, ssh-server

Inlägg av ycc »

@DrMegahertz
DrMegahertz skrev: Genom att trycka Alt+F2 så får du upp dialogen "Kör program"
Bra att veta, det kände jag inte till.
DrMegahertz skrev: ... program som kräver en terminal avslutas direkt.
Då blir det ytterligare lite klarare. Tack för förklaringarna.

Men det är fortfarande inte helt enkelt, tycker jag. Man kan ju ta bort all terminal I/O genom att ge lösenordet innan (det hålls väl aktiverat i en kvart tror jag?) och ändra skriptet till:

Kod: Markera allt

#!/bin/bash
/etc/init.d/ssh stop > slask
Öppnar man en terminal och kör detta så sker ingen I/O, skriptet funkar. Gör man "kör i terminal" så fungerar också skriptet. Gör man "Kör" så fungerar det inte, trots att inte I/O sker i terminalen. (Man får ju inget meddelande om det fungerat eller ej.) Drar man däremot igång skriptfilen i bakgrunden, med en & efter sig, så fungerar det förstås oberoende om det ger output eller ej. Det är ju inte bara en teoretisk fråga tycker jag, det känns ju bra att veta om kommandona man ger "biter" eller ej ;)

Några ytterligare frågor är kvar:
ycc skrev: Så det finns inget enkelt sätt att köra scriptfiler under autostart (ex i /usr/share/gnome/autostart) om dom innehåller kommandon som kräver sudo?
Jag undrar också: Vilket kommando gör jag för att från datorn kunna se om servern är igång?
Tack för tipsen, det blir gradvis lite klarare :)

@Sid/stoffepojken
Tack för tipset, jag skall snarast sätta mig in i rcconf. Återkommer ;)
Senast redigerad av 1 ycc, redigerad totalt 1 gånger.
Ubuntu/Linux - Grunder: En introduktion till Ubuntu och Linux
Ubuntu/Linux - Basics: An introduction to Ubuntu and Linux (experimental, automated translation)
ycc
Inlägg: 1818
Blev medlem: 10 feb 2007, 04:08
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Kontakt:

SV: autostart, script, ssh-server

Inlägg av ycc »

Tydligen går det att se om SSH-servern är igång genom att göra: "ps -A | grep ssh" (man ser processen sshd). Men det finns säkert bättre sätt?

Kod: Markera allt

yngve@ubuntu:~/Desktop$ ps -A | grep ssh
 4734 ?        00:00:00 ssh-agent
yngve@ubuntu:~/Desktop$ sudo /etc/init.d/ssh start
 * Starting OpenBSD Secure Shell server...           [ OK ] 
yngve@ubuntu:~/Desktop$ ps -A | grep ssh
 4734 ?        00:00:00 ssh-agent
11244 ?        00:00:00 sshd
yngve@ubuntu:~/Desktop$ sudo /etc/init.d/ssh stop
 * Stopping OpenBSD Secure Shell server...           [ OK ] 
yngve@ubuntu:~/Desktop$ ps -A | grep ssh
 4734 ?        00:00:00 ssh-agent
yngve@ubuntu:~/Desktop$

Hur man "autostartar" skript innehållande kommandon som kräver sudo vet jag dock fortfarande inte.  :)
Senast redigerad av 1 ycc, redigerad totalt 1 gånger.
Ubuntu/Linux - Grunder: En introduktion till Ubuntu och Linux
Ubuntu/Linux - Basics: An introduction to Ubuntu and Linux (experimental, automated translation)
Användarvisningsbild
danno
Inlägg: 445
Blev medlem: 08 okt 2006, 10:13
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Norrköping

SV: autostart, script, ssh-server

Inlägg av danno »

Startscriptet för ssh-servern (utan sudo i) bör ligga i katalogen /etc/init.d/
Detta script tar kommandon som "start" och "stop" eventuellt också "restart".

De saker som finns i /etc/init.d/ brukar köras vid start och nedstängning av systemet.

Om du inte vill autostarta sshd (denna "autostart" har inget med Gnome att göra!)
så kan du avlänka scriptet i rc*.d-katalogerna:
sudo update-rc.d ssh remove

Det finns ingen anledning att först starta servern med ett script, för att sedan stoppa den med ett annat.

Nu ligger scriptet kvar i /etc/init.d/ så att du "manuellt" kan starta när du önskar.
Lars
Inlägg: 6191
Blev medlem: 14 jan 2007, 19:31
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

SV: autostart, script, ssh-server

Inlägg av Lars »

Som DrMegahertz sade så kan du ändra vad som startas automatiskt genom system -> administration -> tjänster. Det är nog det lättaste sättet att ändra hur /etc/init.d och /etc/rc*.d fungerar.
ycc
Inlägg: 1818
Blev medlem: 10 feb 2007, 04:08
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Kontakt:

SV: autostart, script, ssh-server

Inlägg av ycc »

danno, Lars,
Tack för förslagen. F.n. kör jag nog vidare på det enklare "system -> administration -> tjänster".
Att jag talade om Gnome var för att jag trodde att man kunde lägga skript i "/usr/share/gnome/autostart" och då startade dom samtidigt som Gnome. Men det var ju en snabbfix. (Liksom att ha skript på skrivbordet som anropade skripten i /etc/init.d/)
Om jag ger mig in i det mer komplicerade:
danno skrev: sudo update-rc.d ssh remove
men ångrar mig och vill ha tillbaka den situationen där servern startar av sig själv, skall jag då göra så här?

Kod: Markera allt

sudo update-rc.d ssh defaults
Ubuntu/Linux - Grunder: En introduktion till Ubuntu och Linux
Ubuntu/Linux - Basics: An introduction to Ubuntu and Linux (experimental, automated translation)
Användarvisningsbild
danno
Inlägg: 445
Blev medlem: 08 okt 2006, 10:13
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Norrköping

SV: autostart, script, ssh-server

Inlägg av danno »

sudo update-rc.d scriptnamn defaults 99 01 enter

update-rc.d skapar länkar till scriptet i ett antal kataloger (rc*.d), vars innehåll används vid systemets start och avstängning.
99 i exemplet ovan innebär att scriptet startas bland det sista i uppstarten, när nätverk och annat nödvändigt redan är igång.
01 = tidigt, är när scriptet skall stoppas

Vid en koll så verkar just SSH ha "20" på båda: sudo update-rc.d ssh defaults 20 20

se även man update-rc.d

Att utelämna siffrorna bör inte ge felmeddelande, det kan dock vara praktiskt att kunna ange ordning..
ycc
Inlägg: 1818
Blev medlem: 10 feb 2007, 04:08
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Kontakt:

SV: autostart, script, ssh-server

Inlägg av ycc »

danno skrev: ... sudo update-rc.d scriptnamn defaults 99 01 enter ...
Tack danno, efter den tydliga förklaringen vågar jag mig snart in i den "djungeln"  ;)
Ubuntu/Linux - Grunder: En introduktion till Ubuntu och Linux
Ubuntu/Linux - Basics: An introduction to Ubuntu and Linux (experimental, automated translation)
Skriv svar

Återgå till "För nybörjaren - inaktuell"