Как мне создать подпроцесс, созданный из командной строки? - PullRequest
1 голос
/ 22 апреля 2011

Мне сложно объяснить проблему, с которой я столкнулся:

  1. У меня длительный процесс nohupped , который перенаправляет свой stderr в файл.
  2. Тем не менее, я использую подпроцесс, чтобы пометить stderr временной меткой.
  3. Вышеупомянутый подпроцесс, к сожалению, не исключен (мой плохой)!
  4. Теперь, как мне получить этот подпроцесскаким-то образом nohupped и сохранить stderr и продолжать приходить в файл даже после того, как я выйду из системы.Я должен выйти из сервера.

Рассматриваемая командная строка выглядит примерно так:

$ nohup myscript.sh -op1 val1 -op2 val2 -op3 val3 >mystderr.txt 2> >(while read line; do echo "$(date): ${line}"; done > n100l1800g0.5.err ) < /dev/null &

Вышеупомянутая техника штамповки stderr недавно была изучена прямо здесь, в stackoverflow.

Заранее спасибо за любую подсказку.

1 Ответ

1 голос
/ 22 апреля 2011

Справочная страница для nohup, которую я имею, говорит nohup [ options ] command [arg ...].

Я помню, как читал где-то, что nohup не обрабатывает конвейеры, что, я думаю, то, что у вас есть.

Попробуйте переделать процессы конвейера как скрипт, который принимает аргументы, и он должен работать.

Надеюсь, это поможет.

...