Мне было нелегко получать вывод "подпроцесса" (один запущенный внутренне процессом черного ящика, который я контролирую через c# Систему. Диагностика. Процесс)
Я послушал совет, данный ответом моего предыдущего сообщения: здесь. И там можно найти детали того, что я проходил.
На данном этапе, хотя я могу определить местоположение процесса ssh, порожденного process1.exe, который я контролирую. Я не могу перенаправить вывод к своей c# программе, потому что это "уже выполняющий процесс" и не было запущено непосредственно от C#.
Кажется, что, все свойства, которые Вы устанавливаете в Системе. Диагностика. Объект процесса, только вступите в силу при явном запуске того процесса из c# приложения; если некоторый другой "неуправляемый процесс" запустил процесс, устанавливание этого перенаправления не имеет никакого эффекта, потому что процесс был уже запущен чем-то, что не указывало перенаправление, в котором я нуждаюсь.
Там какой-либо путь состоит в том, чтобы перенаправить вывод процесса, который был уже запущен (процесс, запущенный программой, для которой у меня нет объема, чтобы предварительно указать перенаправление, прежде чем этот процесс будет запущен)?
Можно также использовать простой текстовый редактор и интерфейс командной строки JDK. И Eclipse, и Netbeans - великолепные инструменты, но у них есть кривая обучения (которая IMHO круче языка Java).
Стоит рассмотреть возможность простого запуска и добавления среды IDE после ознакомления с платформой.
-121--4095189-Предполагается, что требуется резервное копирование, а не крупная модернизация базы данных.
Для резервного копирования больших баз данных следует настроить непрерывное архивирование вместо pg _ dump
.
Делать свои основные резервные копии, например, каждый день при помощи
, psql template1-c «выбирает pg_start_backup ('
'дата + %F-% T»') «
, rsync-a - удаляют/var/lib/pgsql/data//var/backups/pgsql/base /
, psql template1-c «выбирает pg_stop_backup ()» '
, А восстанавливают, было бы так же просто как восстановление базы данных, и WAL регистрируется не более старый, чем время pg_start_backup
от резервного местоположения и старта Пост-ГРЭС. И это будет намного быстрее.
Можете ли вы вместо перенаправления выходных данных непосредственно из выполняющегося процесса захватить выходные данные, когда они покидают процесс A в намеченном месте назначения, передать их в новый процесс?
Возможно, вы можете посмотреть на этот код . Я нашел его при поиске решения, чтобы сделать то же самое; Тем не менее, это был не совсем процесс.
Если это не поможет вам посмотреть на P / вызывание setStdhandle
и getstdhandle
, которые должны использоваться при перенаправлении стандартного вывода. Я думаю, что это то, что образец кода связан с тем, что происходит для перенаправления.
Примечание : Я только что посмотрел на эти вещи и на самом деле не получил его, чтобы работать правильно. (У меня было лучшее решение для меня, потому что у меня был доступ к исходному коду, выводу на консоль)
Предполагая, что нет более простых растворов, вы можете попытаться запустить кусок кода в другом процессе через CreateRemoteThread (), объяснил здесь .