Вопрос: Сохранение идентификатора процесса при отсоединении команды в Bash


Когда я отсоединяю команду:

$ command &

Результатом является распечатка STDOUT:

[1] < PID >

Я хотел бы следить за этим ПИД. Тем не менее, я не могу написать этот вывод нигде, кроме STDOUT! Как я могу перенаправить это на файл или переменную?

Я пытался:

$ command 1> ./temp.txt &

Но это все еще находит свой путь к STDOUT!

Заранее спасибо за помощь!


4
2017-07-17 00:35


Источник




Ответы:


$! должен содержать PID последнего фонового процесса. Что-то вроде...

$ command &
$ echo $! > temp.txt

Должен предоставить вам файл с именем temp.txt с PID в нем.

Или на одной линии ...

$ command & echo $! > temp.txt

11
2017-07-17 00:53



Потрясающие. Это не отвечает на мой точный вопрос, но это еще лучше! - Daeden
Да, я думаю, проблема в том, что stdout - это вывод команды, которую вы запускаете, но идентификатор поступает из оболочки. Таким образом, чтобы захватить его с помощью stdout, вам нужно было бы фактически выполнить его в подоболочке как-то и записать его. Просто подумав вслух о том, что происходит, не проверял это. - Bill Heller