|
| Resistent program? Fra : Klaus Petersen |
Dato : 10-03-04 19:29 |
|
Hej ng.
Hvordan griber man normalt det an, hvis det program man laver til linux skal
være resistent?
Skaber man threads? Eller skal man lave en process?
Jeg er også meget interesseret i pointers til hvordan implementerer det.
Klaus.
| |
Jesper Louis Anderse~ (10-03-2004)
| Kommentar Fra : Jesper Louis Anderse~ |
Dato : 10-03-04 19:39 |
|
In article <Y7J3c.6995$kb1.6289@news.get2net.dk>, Klaus Petersen wrote:
> Hvordan griber man normalt det an, hvis det program man laver til linux skal
> være resistent?
Huh? Mener du som en TSR-rutine fra DOS dagene?
--
j.
| |
Klaus Petersen (10-03-2004)
| Kommentar Fra : Klaus Petersen |
Dato : 10-03-04 20:08 |
|
> Huh? Mener du som en TSR-rutine fra DOS dagene?
Heh ... ja det kan da godt være at udtrykket er forældet
Jeg skal såmænd bare lave et program, som kører i baggrunden - dvs. at man
kan bruge computeren som normalt.
Ligesom diverse daemons o.s.v.
| |
Anders Borum (11-03-2004)
| Kommentar Fra : Anders Borum |
Dato : 11-03-04 08:57 |
|
Jesper Louis Andersen wrote:
> In article <Y7J3c.6995$kb1.6289@news.get2net.dk>, Klaus Petersen wrote:
>
>
>>Hvordan griber man normalt det an, hvis det program man laver til linux skal
>>være resistent?
>
>
> Huh? Mener du som en TSR-rutine fra DOS dagene?
>
Bare for at udrydde forvirringen. Vi taler om residente og ikke om
restistente programmer, ikke?
Anders
| |
Klaus Petersen (11-03-2004)
| Kommentar Fra : Klaus Petersen |
Dato : 11-03-04 20:19 |
|
> Bare for at udrydde forvirringen. Vi taler om residente og ikke om
> restistente programmer, ikke?
Jo. Hvad er forskellen egentlig?
| |
Ivan Johansen (11-03-2004)
| Kommentar Fra : Ivan Johansen |
Dato : 11-03-04 21:49 |
|
Klaus Petersen wrote:
> Jo. Hvad er forskellen egentlig?
Resident betyder noget i retning af bosiddende. Et TSR (Terminate and
Stay Resident) program er altså et program som afsluttes men forbliver
(bosiddende) i hukommelsen.
Resistent betyder modstandsdygtig. Man kan f.eks. sige at et program er
resistent over for hacker-angreb.
Ivan Johansen
| |
Jesper Louis Anderse~ (11-03-2004)
| Kommentar Fra : Jesper Louis Anderse~ |
Dato : 11-03-04 21:27 |
|
In article <c2p63r$22bt$1@munin.diku.dk>, Anders Borum wrote:
>> Huh? Mener du som en TSR-rutine fra DOS dagene?
>
> Bare for at udrydde forvirringen. Vi taler om residente og ikke om
> restistente programmer, ikke?
Exactly. TSR == Terminate and stay Resident.
Jeg ville nok benytte betegnelsen resistent program til noget andet
(ikke at jeg har en god veldefineret ide til hvad det skal vaere ;)
--
j.
| |
Per Abrahamsen (11-03-2004)
| Kommentar Fra : Per Abrahamsen |
Dato : 11-03-04 10:13 |
|
"Klaus Petersen" <spectual2@getTOnet.dk> writes:
> Jeg skal såmænd bare lave et program, som kører i baggrunden - dvs. at man
> kan bruge computeren som normalt.
Øh, alle Unix programmer kan køre "i baggrunden", med mindre man gør
sig meget umage med at forhindre det.
Start programmet fra kommandolinjen med et &-tegn efter.
prompt% ditprogram &
prompt%
Og så kører det lige så stille og roligt i baggrunden.
Hvis det bruger stdin / stdout skal du omdirigere dem, som under DOS.
prompt% ditprogram < filmedinput > filmedoutput &
Du kan få programmet til "automatisk" at køre i baggrunden med
ved at kalde fork(2), men det virker unaturligt på Unix brugere.
> Ligesom diverse daemons o.s.v.
Nogen dæmoner startes som beskrevet ovenfor at forskellige shellscript
under /etc/rc*, du kan kigge i dem derunder. Andre, særlig
netværksdæmoner, startes "on demand" af inetd(8) og har en særlig
protokol.
| |
db (10-03-2004)
| Kommentar Fra : db |
Dato : 10-03-04 20:05 |
|
On Wed, 10 Mar 2004 19:29:16 +0100
"Klaus Petersen" <spectual2@getTOnet.dk> wrote:
> Hvordan griber man normalt det an, hvis det program man laver til
> linux skal v_re resistent?
>
> Skaber man threads? Eller skal man lave en process?
>
> Jeg er ogs_ meget interesseret i pointers til hvordan implementerer
> det.
Har linux ikke en daemon funktion som FreeBSD?
Det går bare ud på at fork'e en process som kører i baggrunden (ved at
oprette en ny session id og redirect std-in/out/err
til noget andet...som fx /dev/null
mvh
db
| |
Byrial Jensen (10-03-2004)
| Kommentar Fra : Byrial Jensen |
Dato : 10-03-04 20:28 |
|
Klaus Petersen wrote:
> Hej ng.
>
> Hvordan griber man normalt det an, hvis det program man laver til linux skal
> være resistent?
Hvis jeg har forstået spørgsmålet rigtigt, vil man typisk frigøre
programprocessen fra dens kontrollerende terminal, forke, og returnere
fra den oprindelige proces.
> Skaber man threads? Eller skal man lave en process?
Nej. Ja.
> Jeg er også meget interesseret i pointers til hvordan implementerer det.
man 4 tty
man 2 fork
med meget mere. Er der ikke en Unix-programmerings-FAQ et sted. Den vil
sikkert uddybe.
| |
Klaus Petersen (15-03-2004)
| Kommentar Fra : Klaus Petersen |
Dato : 15-03-04 00:38 |
|
> Hvis jeg har forstået spørgsmålet rigtigt, vil man typisk frigøre
> programprocessen fra dens kontrollerende terminal, forke, og returnere
> fra den oprindelige proces.
Hvorledes "frigører man programprocessen fra dens kontrollerende terminal"?
Hvorfor er det nødvendigt?
De sidste 2 ting har jeg styr på.
| |
Byrial Jensen (15-03-2004)
| Kommentar Fra : Byrial Jensen |
Dato : 15-03-04 20:42 |
|
Klaus Petersen wrote:
> Hvorledes "frigører man programprocessen fra dens kontrollerende terminal"?
Man åbner /dev/tty og bruger ioctl(2) med kode TIOCNOTTY på den
resulterede fildeskriptor. Det beskrives i tty(4) som jeg allerede har
henvist til. En alternativ metode er brug af setsid(2).
> Hvorfor er det nødvendigt?
For at undgå at terminalen sender signaler til programmet, specielt
SIGHUP når man logger ud.
| |
db (11-03-2004)
| Kommentar Fra : db |
Dato : 11-03-04 22:09 |
|
On Thu, 11 Mar 2004 10:13:07 +0100
Per Abrahamsen <abraham@dina.kvl.dk> wrote:
> Du kan få programmet til "automatisk" at køre i baggrunden med
> ved at kalde fork(2), men det virker unaturligt på Unix brugere.
Hvis det er en daemon virker det da ikke unaturligt at den selv sørger
for at køre i baggrunden.
mvh
db
| |
|
|