Если я запустил задание в фон, как я могу перенаправить его вывод к /dev/null
или в некотором роде заставьте его вывод замолчать?
Я не запустил задание как:
CMD >& /dev/null &
Я запустил его как:
CMD &
Теперь, когда CMD
уже работает, действительно ли я могу заставить его вывод замолчать?
Взятый из ссылки "перенаправление вывода от рабочего процесса", данного в этом StackOverflow, отвечает на подобный вопрос. Вы могли бы сравнить эти направления с этим ответом, который обсуждает тот же прием для других целей.
Вот базовый процесс, предполагая, что команда уже работает. Это работает хорошо на регулярный вывод STDOUT. Исходное использование рецензии cat > foo1
как пример продолжительная программа вывода.
В зависимости от подробных сведений процесса Вы хотите заставить замолчать, Вы, возможно, должны выполнить этот процесс на STDERR (или другие ouput потоки) вместо, или в дополнение к, STDOUT.
Найдите процесс PID.
$ ps aux | grep cat
user 6760 0.0 0.0 1580 376 pts/5 S+ 15:31 0:00 cat
Соединитесь с процессом с 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]
В GDB, близко процесс STDOUT. (" (gdb)" подсказка GDB; введите то, что Вы видите на тех строках. Другие строки являются выводом в качестве примера.)
(gdb) p close(1)
$1 = 0
В GDB, открытом новый файл.Примечания: возвращаемое значение "1" указывает, что новый файл был открыт как STDOUT; "0600" режим (полномочия файла) нового файла (значение "читаемого-и-перезаписываемого владельцу, не кому-либо еще").
(gdb) p creat(“/tmp/foo3″, 0600)
$2 = 1
Выход GDB; оставьте выполнение процесса.
(gdb) q
The program is running. Quit anyway (and detach it)? (y or n) y
Detaching from program: /bin/cat, process 6760