[Linux /C] processen en het beheer/overzicht

Pagina: 1
Acties:

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25
Ik heb een programma gemaakt waarin ik een execute doe.
Waarom doe ik dat? Ik moet vanuit mijn programma de PPPd kunnen starten en stoppen.
Maar de manier waarop ik het nu doe (een execvp()) is denk ik niet de juiste omdat ik hierna geen enkele controle meer heb over het proces. Ik weet niet of dat de verbinding gelukt is enz enz.
Mijn vragen:
• kan ik met een proces id (bijv getpid()) de status opvragen van een programma?
• Moet ik wel verder gaan zoals ik nu bezig ben? Heeft er iemand een goed alternatief om vanuit een C programma de PPPd te kunnen aanspreken?


voor meer info vraag gerust :)

Doet iets met Cloud (MS/IBM)


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Wat ik zou doen is het volgende:

Maak een pipe (2, 2 kanten op)
Maak een "fork" van je huidige programa.
Gooi in de parent de ene helft weg en in de child de andere.

Open de filepointers naar die pipe...

Vervolgens ga je in de child je ppp verbinding managen (haal de output van de pppd eventueel op... en parse/check dat dmv regexp/sprintf) en die kan via de pipe de status naar de andere kant sturen.

Het is wat ingewikkeld, maar ik heb een variant hierop (moest wat anders starten) wel voor elkaar gekregen.

  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

Op vrijdag 21 december 2001 10:01 schreef D2k het volgende:
Ik weet niet of dat de verbinding gelukt is enz enz.
Mijn vragen:
• kan ik met een proces id (bijv getpid()) de status opvragen van een programma?
Kun je dat niet gewoon uit de logfiles vissen ?
En zodra je een 'disconnect' o.i.d. ziet, kun je altijd pppd opnieuw opstarten volgens mij..
Maaruh, anders zoek je ff naar kppp ofzoiets, en pluis je de source daarvan uit ?

God, root, what is difference? | Talga Vassternich | IBM zuigt


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25
Op vrijdag 21 december 2001 10:14 schreef ACM het volgende:
Wat ik zou doen is het volgende:

Maak een pipe (2, 2 kanten op)
Maak een "fork" van je huidige programa.
Gooi in de parent de ene helft weg en in de child de andere.

Open de filepointers naar die pipe...

Vervolgens ga je in de child je ppp verbinding managen (haal de output van de pppd eventueel op... en parse/check dat dmv regexp/sprintf) en die kan via de pipe de status naar de andere kant sturen.

Het is wat ingewikkeld, maar ik heb een variant hierop (moest wat anders starten) wel voor elkaar gekregen.
hmmzz dat klinkt idd vrij pittig
maar ik zal er eens naar kijken

Doet iets met Cloud (MS/IBM)


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25
Op vrijdag 21 december 2001 10:16 schreef moto-moi het volgende:

[..]

Kun je dat niet gewoon uit de logfiles vissen ?
En zodra je een 'disconnect' o.i.d. ziet, kun je altijd pppd opnieuw opstarten volgens mij..
nee das niet echt de bedoeling :)
Maaruh, anders zoek je ff naar kppp ofzoiets, en pluis je de source daarvan uit ?
kan ook nog. zal wel eens kijken. tnx

Nog meer ideeen?

Doet iets met Cloud (MS/IBM)


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op vrijdag 21 december 2001 10:16 schreef D2k het volgende:
hmmzz dat klinkt idd vrij pittig
maar ik zal er eens naar kijken
Ach
man pipe
man fork
man execve
etc :P

Is denk ik 20 regels C voor je parent en 50 voor je child ofzo ;)

Tenzij je heel complexe dingen gaat doen.
Je zou ook met posix-threads kunnen gaan knoeien, maar daar weet ik zo geen documentatie voor, die hetzelfde doen.

  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

Op vrijdag 21 december 2001 10:20 schreef ACM het volgende:
Je zou ook met posix-threads kunnen gaan knoeien, maar daar weet ik zo geen documentatie voor, die hetzelfde doen.
Misschien heb je hier wat aan ?

God, root, what is difference? | Talga Vassternich | IBM zuigt


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op vrijdag 21 december 2001 10:23 schreef moto-moi het volgende:
Misschien heb je hier wat aan ?
Ik wel! Bedankt :)

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25
Op vrijdag 21 december 2001 10:23 schreef moto-moi het volgende:

[..]

Misschien heb je hier wat aan ?
ik ook wel denk ik :)
tnx

Doet iets met Cloud (MS/IBM)


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25
Op vrijdag 21 december 2001 10:20 schreef ACM het volgende:

[..]

Ach
man pipe
man fork
man execve
etc :P
daar was ik uiteraard al mee bezig
Is denk ik 20 regels C voor je parent en 50 voor je child ofzo ;)

Tenzij je heel complexe dingen gaat doen.
Je zou ook met posix-threads kunnen gaan knoeien, maar daar weet ik zo geen documentatie voor, die hetzelfde doen.
Ik weet niet wat je complex vind
zal het probleem iets beter proberen te omschrijven.
Het is de bedoeling om vanuit een C programma een PPP verbinding op te bouwen en te kunnen beindigen. Daarbij moet het programma als initiator en als ontvanger kunnen dienen en nadat de PPP verbinding er is moet hierover een TCP (bent u er nog :? ) verbinding worden opgebouwd voor de verdere communicatie met het programma (ook weer 2 richtingen)

Doet iets met Cloud (MS/IBM)


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op vrijdag 21 december 2001 10:37 schreef D2k een beschrijving
Volgens mij moet je ook wat beter naar pppd kijken, die heeft niet voor niets return codes ;)

Hoe je die output makkelijk kan vinden/krijgen weet ik niet, maar het is mogelijk :)

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25
Op vrijdag 21 december 2001 11:27 schreef ACM het volgende:

[..]

Volgens mij moet je ook wat beter naar pppd kijken, die heeft niet voor niets return codes ;)
dat denk ik ook :)

kan na 6 wkn het woord ppp niet meer horen
Hoe je die output makkelijk kan vinden/krijgen weet ik niet, maar het is mogelijk :)
ja daar ging ik wel vanuit dat het kan, alleen het hoe ..... :+

Doet iets met Cloud (MS/IBM)


  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

Op vrijdag 21 december 2001 11:42 schreef D2k het volgende:
kan na 6 wkn het woord ppp niet meer horen
pppd is technisch gezien een ander woord hoor >:)
ja daar ging ik wel vanuit dat het kan, alleen het hoe ..... :+
En dat wil dan P&W-modje worden ;)

Misschien kun je dit progje even bekijken ? Quickppp da's denk ik wat overzichtelijker dan Kpppd :)

God, root, what is difference? | Talga Vassternich | IBM zuigt


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op vrijdag 21 december 2001 11:42 schreef D2k het volgende:
dat denk ik ook :)
Mja, man pppd geeft een mooi overzicht van de mogelijke meldingen ;)

ppp, ppp, ppp, ppp, ppp, ppp, ppp, ppp >:)

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25
Op vrijdag 21 december 2001 11:55 schreef moto-moi het volgende:

[..]

pppd is technisch gezien een ander woord hoor >:)
maar klinkt hetzelfde en heeft te maken met hetzelfde :)
En dat wil dan P&W-modje worden ;)
waar staat dat?? ;)
daarom vraag ik het in NOS :X
Misschien kun je dit progje even bekijken ? Quickppp da's denk ik wat overzichtelijker dan Kpppd :)
doe ik
tnx :)

Doet iets met Cloud (MS/IBM)


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25
Op vrijdag 21 december 2001 11:57 schreef ACM het volgende:

[..]

Mja, man pppd geeft een mooi overzicht van de mogelijke meldingen ;)
maar laat niet alle opties zien
ook is pppd 2.4.1 niet helemaal correct (daar heb ik dus aan moeten herschrijven)
ppp, ppp, ppp, ppp, ppp, ppp, ppp, ppp >:)
arghhhhhhhh

Doet iets met Cloud (MS/IBM)


  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

Op vrijdag 21 december 2001 11:57 schreef D2k het volgende:
waar staat dat?? ;)
daarom vraag ik het in NOS :X
/zeer offtopic
Hier natuurlijk :)

God, root, what is difference? | Talga Vassternich | IBM zuigt


Verwijderd

Op vrijdag 21 december 2001 10:01 schreef D2k het volgende:
Ik heb een programma gemaakt waarin ik een execute doe.
Waarom doe ik dat? Ik moet vanuit mijn programma de PPPd kunnen starten en stoppen.
:) ;)
Maar de manier waarop ik het nu doe (een execvp()) is denk ik niet de juiste omdat ik hierna geen enkele controle meer heb over het proces. Ik weet niet of dat de verbinding gelukt is enz enz.
Ik denk dat je manier wel goed is, je kunt de exitcode van pppd gebruiken als status, en pppd stoppen doe je uiteraard met kill. Welke pid moet je killen? Lees man 2 kill maar :)
Pagina: 1