Isso ocorre porque o processo em segundo plano é executado em uma subcamada. Para fazer o que você quer, você pode fazer isso:
LOGFOLDER="$LOGFOLDER" bash -c 'node process.js 1>$LOGFOLDER.$$.log' &
Quando faço
node process.js 1>$LOGFOLDER\$$.log
o PID do processo criado se torna o nome do arquivo. Eu quero executar este processo em segundo plano, como eu quero executar muitas instâncias do mesmo process.js . Então, eu adicionei & no final,
node process.js 1>$LOGFOLDER\$$.log &
Isso fez com que o processo fosse executado em segundo plano, mas o PID (o nome do arquivo) está sempre errado. Eu registrei o ID do processo usando $! após a linha acima. No primeiro caso, a saída de $! e o nome do arquivo de log são os mesmos. Mas no segundo caso eles não são. Fazer o processo para ser executado em segundo plano usando & está fornecendo PID diferentes no espaço reservado $$ . Por que isso está acontecendo e como posso fazer os dois funcionarem
Tags shell-script