Avatar billede nomak Nybegynder
25. juli 2003 - 00:33 Der er 10 kommentarer og
1 løsning

lave C program til daemon (unix)

fandt engang en artikel om det på google, men kan ikke finde den mere.. Nogen der kan finde/har en artikel/kodestump som jeg kan glo i ? :)
Avatar billede arne_v Ekspert
25. juli 2003 - 07:58 #1
Hvilken funktionalitet mangler du ?

Normalt er en daemon bare et normalt program der er startet på
en speciel måde, så det ikke er afhængig af at en bruger er
logget ind.
Avatar billede nomak Nybegynder
25. juli 2003 - 10:17 #2
det jeg mener er at programmet skal ligge sig i baggrunden før den går til den evige while løkke..
Avatar billede arne_v Ekspert
25. juli 2003 - 10:21 #3
Aha.

Du vil starte det i foreground oog have det til at hoppe i background selv.

Der er noget kode midt på:
  http://www.erlenstar.demon.co.uk/unix/faq_8.html

(jeg har aldrig prøvet at lave noget sådan så jeg ved ikke om det er det
som du skal bruge)
Avatar billede dilleberg Nybegynder
25. juli 2003 - 19:42 #4
Så vidt jeg husker startes UNIX-programmer i baggrunden ved at sætte en & foran programnavnet :

&myprog

kører 'myprog' i baggrunden.
Problemet er bare, at når/hvis du afslutter den proces (typisk shell'en) som startede programmet, afsluttes programmet også.
Det kan dog undgås med kommandoen 'nohup' :

&nohup myprog

nohup blev 'opfundet' for at man kunne starte et program via en telefon-linie og programmet så ikke stoppede når telefonrøret blev lagt på (hang up the phone)

Det er 10 år siden jeg har arbejdet med UNIX, men mon ikke det virker endnu :-)

db
Avatar billede arne_v Ekspert
25. juli 2003 - 20:16 #5
Jeg troede at den ampersand skulle stå efter og ikke før kommandoen.
Avatar billede arne_v Ekspert
25. juli 2003 - 20:18 #6
Men det som det link jeg refererede til gør at det giver mulighed for at
starte programmet i foreground og så smutter det i background.
Avatar billede dilleberg Nybegynder
25. juli 2003 - 22:39 #7
Ups... jo, & skal stå til sidst.
UNIX daemon's startes jo normalt ikke fra kommandolinien, så arne_v's link henviser også til den 'rigtige' løsning, som er uafhængig af, hvordan og hvorfra programmet startes.

Men 'nohup' kommandoen bør også fungere.
Altså

nohup myprog &

db
Avatar billede nomak Nybegynder
26. juli 2003 - 15:48 #8
http://www.manualy.sk/sock-faq/unix-socket-faq-4.html

punkt 4.3

det var det jeg ledte efter :)

smid et svar alligevel, i kom med nyttige informationer mht nohup osv.. kan jo være man fik brug for det engang..
Avatar billede arne_v Ekspert
26. juli 2003 - 15:53 #9
Det ligner nu rimeligt meget det jeg linkede til.
Avatar billede arne_v Ekspert
26. juli 2003 - 15:53 #10
Og et svar.
Avatar billede arne_v Ekspert
26. juli 2003 - 15:54 #11
Jeg prøver igen - det er jo teknisk krævende at bruge sådan en
radio button.

:-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester