Как заставить побег работать так, чтобы &
на самом деле выполняет первую команду в фоновом режиме?
# foo param1 param2 >> run.out &; tail -f run.out
Просто опустите точку с запятой:
# foo param1 param2 >> run.out & tail -f run.out
Вам нужно поместить фоновую команду в ().
(ls -R / >>/tmp/list & ); tail -f /tmp/list
К сожалению, это действительно фон. Вы не сможете нам% 1 получить его PID.
Я тоже столкнулся с этим вопросом и решил его так:
`foo param1 param2 >> run.out &` ; tail -f run.out
Не знаю, отличается ли семантика.
В этом конкретном случае также полезно следующее:
foo param1 param2 | tee -a run.out
Вы можете использовать nohup:
nohup cmd &
tail -f nohup.out