В tcsh, как я могу заставить вывод замолчать уже рабочего фонового процесса?

Если я запустил задание в фон, как я могу перенаправить его вывод к /dev/null или в некотором роде заставьте его вывод замолчать?

Я не запустил задание как:

CMD >& /dev/null &

Я запустил его как:

CMD &

Теперь, когда CMD уже работает, действительно ли я могу заставить его вывод замолчать?

3
задан 23.12.2009, 15:18

1 ответ

Взятый из ссылки "перенаправление вывода от рабочего процесса", данного в этом StackOverflow, отвечает на подобный вопрос. Вы могли бы сравнить эти направления с этим ответом, который обсуждает тот же прием для других целей.

Вот базовый процесс, предполагая, что команда уже работает. Это работает хорошо на регулярный вывод STDOUT. Исходное использование рецензии cat > foo1 как пример продолжительная программа вывода.

В зависимости от подробных сведений процесса Вы хотите заставить замолчать, Вы, возможно, должны выполнить этот процесс на STDERR (или другие ouput потоки) вместо, или в дополнение к, STDOUT.

  1. Найдите процесс PID.

    $ ps aux | grep cat
    user 6760 0.0 0.0 1580 376 pts/5 S+ 15:31 0:00 cat
    
  2. Соединитесь с процессом с 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. В GDB, близко процесс STDOUT. (" (gdb)" подсказка GDB; введите то, что Вы видите на тех строках. Другие строки являются выводом в качестве примера.)

    (gdb) p close(1)
    $1 = 0
    
  4. В GDB, открытом новый файл.Примечания: возвращаемое значение "1" указывает, что новый файл был открыт как STDOUT; "0600" режим (полномочия файла) нового файла (значение "читаемого-и-перезаписываемого владельцу, не кому-либо еще").

    (gdb) p creat(“/tmp/foo3″, 0600)
    $2 = 1
    
  5. Выход GDB; оставьте выполнение процесса.

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

Источник

2
ответ дан 08.12.2019, 01:49

Теги

Похожие вопросы