Работает ли nohup по трубе?

Если я делаю

nohup cmd1 | cmd2 &

- то же, что и

nohup "cmd1 | cmd2" &

?

Мне бы хотелось, чтобы я nohup все, так как cmd1 будет прослушивать порт 8023.

Ответы

Ответ 1

Нет, вам нужно добавить nohup в команды отдельно.

Рекомендуется нечто подобное:

nohup sh -c "cmd1 | cmd2" &

Или, альтернативно:

nohup $SHELL <<EOF &
cmd1 | cmd2
EOF

Ответ 2

В качестве альтернативы nohup я рекомендую

( cmd1 | cmd2 ) > logfile < /dev/null 2>&1 &

Перевернув stdin, stdout и sterr из терминала, это обеспечивает тот же эффект, что и nohup, с синтаксисом, который я, по крайней мере, предпочитаю.

Ответ 3

nohup cmd1 | cmd2 &

Нет, я только что проверил это следующим образом

nohup: ignoring input and redirecting stderr to stdout