No tcsh, como posso silenciar a saída de um processo em segundo plano já em execução?

3

Se eu lancei um trabalho para o segundo plano, como posso redirecionar sua saída para /dev/null ou, de alguma forma, silenciar sua saída?

Eu não comecei o trabalho como:

CMD >& /dev/null &

Eu comecei assim:

CMD &

Agora que CMD já está em execução, posso silenciar sua saída?

    
por Ross Rogers 23.12.2009 / 14:18

1 resposta

2

Extraído do link "redirecionando a saída de uma corrida processo " dado em este StackOverflow responda a uma pergunta semelhante. Você pode comparar essas instruções com esta resposta que discute o mesmo truque para outros fins.

Aqui está o processo básico, assumindo que o comando já esteja em execução. Isso funciona bem para saída STDOUT regular. O writeup original usa cat > foo1 como um exemplo de programa de saída de longa duração.

Dependendo das particularidades do processo que você deseja silenciar, talvez seja necessário executar esse processo no STDERR (ou em outros fluxos de saída) em vez de, ou além do STDOUT.

  1. Encontre o processo PID.

    $ ps aux | grep cat
    user 6760 0.0 0.0 1580 376 pts/5 S+ 15:31 0:00 cat
    
  2. Conecte-se ao processo com o GDB.

    $ gdb -p 6760 /bin/cat
    GNU gdb 6.4.90-debian
    Copyright (C) 2006 Free Software Foundation, Inc
    [lots more license stuff snipped]
    Attaching to program: /bin/cat, process 6760
    [snip other stuff that's not interesting now]
    
  3. No GDB, feche o processo STDOUT. ("(gdb)" é o prompt do GDB; digite o que você vê nessas linhas. As outras linhas são saídas de exemplo.)

    (gdb) p close(1)
    $1 = 0
    
  4. No GDB, abra um novo arquivo. Notas: o valor de retorno "1" indica que o novo arquivo foi aberto como STDOUT; "0600" é o modo (permissões de arquivo) do novo arquivo (significando "legível-e-gravável para o proprietário, não para mais ninguém").

    (gdb) p creat(“/tmp/foo3″, 0600)
    $2 = 1
    
  5. Saia do GDB; deixe o processo em andamento.

    (gdb) q
    The program is running. Quit anyway (and detach it)? (y or n) y
    Detaching from program: /bin/cat, process 6760
    

Fonte

    
por 07.01.2010 / 13:46

Tags