STDOUT redirect runtime wijzigen

Pagina: 1
Acties:

  • ajvdvegt
  • Registratie: Maart 2000
  • Laatst online: 04-12-2025
Er draait hier een programma wat nogal veel output naar STDOUT stuurde. Daarom is dat met een eenvoudige 'applicatie > /dev/null' verholpen. Nu blijkt de info op STDOUT soms toch wel handig te zijn. Is er een mogelijkheid om dit aan te passen terwijl het programma draait?

Zin er manieren waarop we kunnen zorgen dat dit in het vervolg wel kan? Ik had zelf bedacht dat we een fifo zouden kunnen gebruiken (named pipe). Daar sturen we dan de uitvoor heen, en normaal wordt dat direct naar /dev/null gecat. Willen we de uitvoer zien, dan killen we 'cat', en starten een nieuwe die het naar een bestandje stuurt. Probleem is wel: wat gebeurt er als we alleen 'cat' killen. Hoeveel data kan er in zo'n fifo?

I don't kill flies, but I like to mess with their minds. I hold them above globes. They freak out and yell "Whooa, I'm *way* too high." -- Bruce Baum


  • Lethalis
  • Registratie: April 2002
  • Niet online
Als je een FIFO in non blocking mode opent, zou het mogelijk moeten zijn.

Wat de capaciteit betreft, denk ik dat er geen maximum aanzit, aangezien het nergens wordt opgeslagen. Maar dit weet ik niet zeker :X

Ask yourself if you are happy and then you cease to be.


  • Wilke
  • Registratie: December 2000
  • Laatst online: 08-02 22:25
Hmm die FIFO oplossing is wel slim moet ik zeggen.

Een FIFO is "gewoon" een bestand voor zover ik het altijd heb begrepen, dus ik denk dat er zoveel in kan als er ruimte vrij is op de partitie waar je die FIFO (named pipe) hebt aangemaakt.

Kleine uitleg over named pipes maken/gebruiken

[ Voor 18% gewijzigd door Wilke op 21-12-2005 11:00 ]


  • JeroenE
  • Registratie: Januari 2001
  • Niet online
Waarom laat je de uitvoer niet gewoon naar je STDOUT gaan en kijk je er alleen naar als je de uitvoer belangrijk vindt? Je zegt niet welk OS je gebruikt, maar je kan in Linux in ieder geval vrij simpel een andere virtual console openen en daar jouw programma draaien.

Als je een OS hebt zonder virtual consoles is er altijd nog screen. Het voordeel hiervan is dat je dan ook vanaf een andere plek naar je server kan SSH'en en dan in die screen-sessie kijken.

  • ajvdvegt
  • Registratie: Maart 2000
  • Laatst online: 04-12-2025
@jeroene: Het is Linux, en het is dus niet de bedoeling dat het programma wordt gestopt en gestart. Uitvoer op STDOUT zouden we graag ook offline kunnen bestuderen, vandaar dat uitvoer naar een bestandje handig is. En zoals ik zei: het is VEEL output, ca. 30MB/uur kale tekst. Het scrollt te snel langs om real-time te kunnen lezen.

I don't kill flies, but I like to mess with their minds. I hold them above globes. They freak out and yell "Whooa, I'm *way* too high." -- Bruce Baum


  • JeroenE
  • Registratie: Januari 2001
  • Niet online
Uitvoer op STDOUT zouden we graag ook offline kunnen bestuderen, vandaar dat uitvoer naar een bestandje handig is.
Als je een screen sessie hebt draaien kan je (met de standaard key-bindings) met Ctrl-a H (let op: hoofdletter H) het loggen van het window aan en uit zetten. Er wordt dan een bestandje screenlog.x aangemaakt ( waarbij x het windownummer is).
Pagina: 1