当我做
node process.js 1>$LOGFOLDER\\$$.log
创建的进程PID
成为文件名。我想在后台运行这个过程,因为我想运行相同的多个实例process.js
。所以,我&
在最后补充道,
node process.js 1>$LOGFOLDER\\$$.log &
这使得该进程在后台运行,但PID
(文件名)总是错误的。我确实$!
在上面的行之后使用了日志进程ID 。在第一种情况下,$!
输出和日志文件的名称相同。但在第二种情况下,情况并非如此。使用占位符使进程在后台运行是&
不同的。为什么会发生这种情况以及我怎样才能使两者都工作PID
$$
答案1
这是因为后台进程在子 shell 中运行。为了做你想做的事,你可以这样做:
LOGFOLDER="$LOGFOLDER" bash -c 'node process.js 1>$LOGFOLDER.$$.log' &