GNU/Linux >> Linux Esercitazione >  >> Linux

Scartare Stdout di un comando per T secondi?

Sto lavorando su alcuni script batch che coinvolgono quanto segue:

  • Esegui alcuni sottoprocessi non terminanti (in modo asincrono)
  • Aspetta t secondi
  • Esegui altre attività X per un po' di tempo
  • Termina processi secondari

Idealmente, vorrei essere in grado di differenziare lo stdout dei sottoprocessi che è stato emesso prima X da ciò che è stato emesso dopo X .

Mi vengono in mente alcune idee, anche se non ho idea di come le implementerei:

  • Elimina lo stdout per t secondi
  • Inserisci del testo (ad esempio "Attività X iniziata") per separare visivamente le sezioni
  • Dividi lo stdout in vari flussi di output

Risposta accettata:

Mentre potresti complicare la questione con exec e discussioni aggiuntive sul descrittore di file, il tuo secondo suggerimento è il più semplice. Prima di iniziare X , echo una stringa marcatore nel file di registro.

Tutti quei comandi verrebbero aggiunti allo stesso file, quindi forse sarebbe una buona idea anteporre tutto l'output di X con un marker, in modo da poter distinguere il suo output da quello dei comandi precedenti ancora in esecuzione. Qualcosa sulla falsariga di:

{ X; } | sed 's,^,[X say] ,'

Ciò renderebbe molto più semplici ulteriori analisi. Non è sicuro e per programmi molto dettagliati, le condizioni di gara si verificano spesso.

Se sei disposto a cogliere l'occasione per interrompere una riga di registro e puoi interrompere il primo batch di app senza conseguenze, anche questo funzionerebbe:

{ Y; } >> log &
sleep $t
kill -STOP %% # last job, like the same as %1
echo -e "nX started" >> log
kill -CONT %%
{ X; } >> log2

Linux
  1. 8 suggerimenti per la riga di comando di Linux

  2. Come suddividere un file come Dividi in Stdout per eseguire il piping su un comando?

  3. passare stdout come nome file per la riga di comando util?

  4. Problemi con la riga di comando di Netcat

  5. Sintassi corretta per il comando id -r

Esercitazione sui comandi OD Linux per principianti (6 esempi)

Linux w Command Tutorial per principianti (5 esempi)

Tutorial sui comandi Linux ss per principianti (8 esempi)

Comando di localizzazione Linux per principianti (8 esempi)

Alcune buone alternative al comando

Exa:un sostituto moderno per ls Command