/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Kørende program fra SSH
Fra : Kasper


Dato : 27-02-06 15:27

Hej gruppe.

Hvis jeg starter et program via. SSH, så lukker det umiddelbart så snart jeg lukker forbindelsen?

Hvordan får jeg programmet til at blive kørende - Også når jeg lukker SSH-forbindelsen.


--
Med venlig hilsen
Kasper Johansen

 
 
Anders (27-02-2006)
Kommentar
Fra : Anders


Dato : 27-02-06 15:21

Kasper wrote:
> Hej gruppe.
>
> Hvis jeg starter et program via. SSH, så lukker det umiddelbart så snart jeg lukker forbindelsen?
>
> Hvordan får jeg programmet til at blive kørende - Også når jeg lukker SSH-forbindelsen.
Tag et kig på screen (http://www.gnu.org/software/screen/)

Mogens Kjaer (27-02-2006)
Kommentar
Fra : Mogens Kjaer


Dato : 27-02-06 15:24

Kasper wrote:
> Hej gruppe.
>
> Hvis jeg starter et program via. SSH, så lukker det umiddelbart så snart jeg lukker forbindelsen?

Start ditprogram vha.

nohup ditprogram > ditprogram.log 2>&1 &

Så burde den ikke stoppe programmet, hvis ssh forbindelsen lukkes.

ditprogram.log vil indeholde hvad der er skrevet på stdout og stderr.

Mogens


--
Mogens Kjaer, Carlsberg A/S, Computer Department
Gamle Carlsberg Vej 10, DK-2500 Valby, Denmark
Phone: +45 33 27 53 25, Fax: +45 33 27 47 08
Email: mk@crc.dk Homepage: http://www.crc.dk

Preben Mikael Bohn (27-02-2006)
Kommentar
Fra : Preben Mikael Bohn


Dato : 27-02-06 15:30

Kasper wrote:
> Hej gruppe.
>
> Hvis jeg starter et program via. SSH, så lukker det umiddelbart så snart jeg lukker forbindelsen?
>
> Hvordan får jeg programmet til at blive kørende - Også når jeg lukker SSH-forbindelsen.

Mon ikke "program &" kan gøre det. Jeg har dog været ude for at hvis jeg
starter et program - f.eks. fra en gnome-terminal - på denne måde får
programmet gnome-terminalen som parent og bliver derved også lukket når
gnome-terminalen lukker. Men mener ikke at det sker på mine
ssh-forbindelser.

Med venlig hilsen Preben

Niels Dybdahl (27-02-2006)
Kommentar
Fra : Niels Dybdahl


Dato : 27-02-06 15:53

> Hej gruppe.
>
> Hvis jeg starter et program via. SSH, så lukker det umiddelbart så snart
> jeg lukker forbindelsen?
>
> Hvordan får jeg programmet til at blive kørende - Også når jeg lukker
> SSH-forbindelsen.

Når jeg har brug for det, så starter jeg vncserver, som laver en session på
en ny skærm. Jeg kan så koble mig op med en VNC klient via SSH og starte
programmet i et terminalvindue.

Niels Dybdahl



Ukendt (27-02-2006)
Kommentar
Fra : Ukendt


Dato : 27-02-06 21:10

Kasper wrote:
>
> Hej gruppe.
>
> Hvis jeg starter et program via. SSH, så lukker det umiddelbart så snart jeg lukker forbindelsen?

Det kommer vel an på, hvordan du lukker forbindelsen.

>
> Hvordan får jeg programmet til at blive kørende - Også når jeg lukker SSH-forbindelsen.

Hvis du gerne vil kunne komme i kontakt med progammet igen, så
er screen nok det bedste valg. Hvis jeg vil starte et program i
baggrunden helt uden forbindelse til terminalen starter jeg det
gennem det her program:

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
#include <fcntl.h>

int main(int argc, char ** argv)
{
char eflag;
int pipefd[2];
if (argc<2) {
fprintf(stderr,"Usage: %s <cmd>\n",argv[0]);
return EXIT_FAILURE;
}
if (pipe(pipefd)) {
perror("pipe");
return EXIT_FAILURE;
}
switch(fork()) {
case -1:
perror("fork");
return EXIT_FAILURE;
case 0:
close(pipefd[0]);
if (daemon(1,0)) {
write(pipefd[1],"e",1);
write(pipefd[1],&errno,sizeof(errno));
return EXIT_FAILURE;
}
write(pipefd[1],"",1);
fcntl(pipefd[1],F_SETFD,FD_CLOEXEC);
execvp(argv[1],argv+1);
write(pipefd[1],&errno,sizeof(errno));
return EXIT_FAILURE;
}
close(pipefd[1]);
if(read(pipefd[0],&eflag,1)!=1) {
perror("read");
return EXIT_FAILURE;
}
switch(read(pipefd[0],&errno,sizeof(errno))) {
case 0:
if (!eflag) return EXIT_SUCCESS;
default:
fprintf(stderr,"%s: Internal error!\n",argv[0]);
return EXIT_FAILURE;
case sizeof(errno):
perror(eflag?"daemon":argv[1]);
return EXIT_FAILURE;
}
}

--
Kasper Dupont -- Rigtige mænd skriver deres egne backupprogrammer
#define _(_)"d.%.4s%."_"2s" /* This is my new email address */
char*_="@2kaspner"_()"%03"_("4s%.")"t\n";printf(_+11,_+6,_,6,_+2,_+7,_+6);

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste