The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > High Level Programmering
.
google unix.com



High Level Programmering Post spørsmål om C, C + +, Java, SQL og andre programmeringsspråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Hvordan skrive Pro * C daemon prosessen bruker multithreading? kachiraju UNIX for Dummies Spørsmål og svar 0 07-02-2008 02:51
daemon prosessen suresh_rupineni Linux 1 08-21-2006 03:14
zombie daemonen prosessen! rish2005 UNIX for Advanced & ekspertbrukere 1 11-25-2005 09:59
Hva er en daemon prosessen Kanu77 High Level Programmering 6 03-08-2002 10:47
Daemon prosessen s_chordia High Level Programmering 2 01-17-2002 02:09

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 07-07-2008
vino's Avatar
Vino vino is offline Forum Staff  
Tilhenger (i Vino Veritas)
  
 

Bli Date: Feb 2005
Beliggenhet: Bangalore, India
Innlegg: 2798
Hvordan finne om en prosess en daemon?

Jeg har et scenario der jeg trenger å finne om en prosess er et demonen behandle eller ikke. Dette må gjøres i prosessen. Jeg vet det ikke er noen direkte API's å gjøre det. Jeg har undersøkt disse alternativene.

1. ctermid () - dette kan være mislykket pr mannen sider
2. int devtty; if ((devtty \u003d open ( "/ dev / tty", O_RDWR)) <0) så er det en demonen. Er det noen andre tilfeller der dette kan ikke være sant?
3. Siden setsid () brukes til å koble fra en terminal, kanskje GETSID () kan brukes til å kontrollere prosessen gruppe leder og økt leder.
4. Se om overordnede pid er 1 eller ikke. Kan en demonen Prosessen har ppid enn 1?

Er det flere alternativer? Jeg dont vite hvis det er beste måten å gjøre dette, men det ville være mest hensiktsmessig måte?
  #2 (permalink)  
Old 07-07-2008
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Bli Dato: Aug 2001
Beliggenhet: Ashburn, Virginia
Innlegg: 9120
Daemoner kan ha noen ppid og en ppid av 1 er ingen garanti for at du er en demonen. Jeg liker den åpne / dev / tty idé. Det er bærbare. Men selvfølgelig kan mislykkes av andre årsaker. Ingen har gjort en
rm / dev / tty
på noen av systemene? Også denne prosessen kan være ute av fd's osv. Likevel er det den beste måten. Avhengig av Unix-system, kan det være en ikke-bærbare måte. Få kildekoden for ps og se hvordan det finner dette ut. Men det er mye problemer med å unngå å åpne / dev / tty. Jeg vil gå med det.
  #3 (permalink)  
Old 07-18-2008
fsahog fsahog is offline
Registrert bruker
  
 

Bli Dato: april 2006
Bosted: Nord-Virginia
Innlegg: 23
Jeg ville bygge på en logisk sammenheng, slik at du kan være sikker. For eksempel SIGHUP er en ikke-null vektor når en prosess starter. Det er lurt å null vektoren etter ens gaffel / exec (i barnet, selvsagt), åpenbart for å unngå ydmykelse av å ha en 'hyggelig demonen code avslutte når startbilde-øvre opphører. Så, så, test kunne "er min SIGHUP vector NULL?" og behandlet deretter. Bruk din OS anlegg til gode formål, og la dem bidra til å identifisere den sammenheng også.

Sist endret av fsahog; 07-18-2008 på 09:25.. Begrunnelse: For å gjøre det bedre
  #4 (permalink)  
Old 07-26-2008
matrixmadhan matrixmadhan is offline Forum Advisor  
Technorati Master
  
 

Bli Date: Mar 2005
Sted: leaf node i B + treet
Innlegg: 2953
Code:
Can a daemon process have a ppid other than 1 ?
Enhver prosess bevoktet fra SIGHUP signal som nohup prosessen og løsrevet fra kontrollerende terminal vil ha et ppid av 1, men de er ikke daemonized.

Hva med dette - å se for maskering tillatelser? Jeg vet det er ikke en vanlig praksis som må følges før daemonizing en prosess men mer en praksis.
  #5 (permalink)  
Old 07-26-2008
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Bli Dato: Aug 2001
Beliggenhet: Ashburn, Virginia
Innlegg: 9120
Sitat:
Originally Posted by matrixmadhan View Post
Enhver prosess bevoktet fra SIGHUP signal som nohup prosessen og løsrevet fra kontrollerende terminal vil ha et ppid av 1
Ikke sant. Hver gang noen demonen som skulle ignorere sighup gafler, skapes det en counterexample i denne setningen. (init kunne gaffel uten å lage en counterexample, men aldri ignorerer hup)
Sitat:
Originally Posted by matrixmadhan View Post
men de er ikke daemonized.
Faktisk noe som skjer for å oppfylle disse kriteriene er daemoner. Ingen kontrollerende terminal betyr prosessen er en demonen. Om en prosess er et demonen har ingenting å gjøre med ppid eller hvilke signaler det er ignorerer.

Med de fleste versjoner av UNIX når du logger deg inn på systemet konsollen, den ppid av login shell vil være 1. Før økningen av TCP / IP på ppid hvert login shell ble 1. Ingen av disse login shells er daemoner, de har alle styrende terminaler. Du fortsatt kan ha andre Getty linjene i / etc / inittab. Hver slik linje er et potensielt interaktivt shell med ppid av 1. Men de fleste andre barn spawned by init ikke åpner ttys og forbli daemoner.

Når prosessen avsluttes, sine barn bli eid av init. Dette ikke påvirke om ikke disse barna daemoner. Noen er. Andre ikke.

cron ikke har pid av 1. Hver gang cron spawns en prosess, det nye prosessen er en demonen. Hver av disse daemoner vil ikke ha en ppid av 1 ... deres ppid skal peke til cron.

Når du trenger å vite om en prosess er et demonen eller ikke, det ppid er fullstendig irrelevant. Daemoner og ikke-daemoner kan ha en ppid av 1. Daemoner og ikke-daemoner kan ha en ppid unntatt ett.

Daemoner noen velger å ikke overse sighup. Både inetd og init selv er eksempler på daemoner som lytter til en HUP. Når de får en, de omkonfigurere selv. Men det er mer vanlig for en demonen skal ignorere HUP.

Det er virkelig det svært enkelt.
Daemoner har ingen kontrollerende terminal.
Non-daemoner har kontrollerende terminal.

Eksempler på ting som ikke har peiling på en prosess' demonen status ...
pid
ppid
signal mask
  #6 (permalink)  
Old 07-27-2008
matrixmadhan matrixmadhan is offline Forum Advisor  
Technorati Master
  
 

Bli Date: Mar 2005
Sted: leaf node i B + treet
Innlegg: 2953
Code:
Daemons have no controlling terminal.
Non-daemons have a controlling terminal.
Avtalt.
ppid spiller ingen rolle.

Men hva om en prosess som startet som nohup prosessen og løsrevet fra kontrollerende terminal?
Det har ingen terminal vedlagt, jeg tror ikke det kan kalles som en demonen.
  #7 (permalink)  
Old 07-27-2008
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Bli Dato: Aug 2001
Beliggenhet: Ashburn, Virginia
Innlegg: 9120
Sitat:
Originally Posted by matrixmadhan View Post
Code:
Daemons have no controlling terminal.
Non-daemons have a controlling terminal.
Avtalt.
ppid spiller ingen rolle.

Men hva om en prosess som startet som nohup prosessen og løsrevet fra kontrollerende terminal?
Det har ingen terminal vedlagt, jeg tror ikke det kan kalles som en demonen.
Startet som et nohup eller ikke spiller ingen rolle. Mest godt skrevet daemoner vil eksplisitt ignorere signaler om at de vil ignorere og installere handlers for signaler om at de ønsker å motta.

Men hvis det er løsrevet fra det kontrollerende terminal, er det en demonen. Dette er akkurat hva som skjer når du starter cron eller inetd fra kommandolinjen. Siden du ikke tror at prosesser uten kontroll terminaler er daemoner, hva er din definisjon av en demonen?
Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 06:15.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0