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