我们有一个自定义的C ++后台应用程序是叉一次。 因此,我们在我们的暴发户脚本在Ubuntu 12.04在做这和它完美的作品:
expect fork
exec /path/to/the/app
但是现在我们需要在一个参数传递给我们的应用程序包含的CPU在其上运行的机器上的数传:
cat /proc/cpuinfo | grep processor | wc -l
我们的第一次尝试是这样的:
expect fork
exec /path/to/the/app -t `cat /proc/cpuinfo | grep processor | wc -l`
而我们开始用正确的-t值的应用程序,新贵跟踪错误的PID值,我假设,因为这些猫,grep的&WC命令在EXEC所有启动过程中我们的应用程序之前。
我也试过,甚至它不工作,我猜是因为设置了的环境变量运行的进程? 新贵尚跟踪错误的PID:
expect fork
script
NUM_CORES=32
/path/to/the/app -t $NUM_CORES
end script
我也试过在ENV节这样做,但显然那些不运行的命令:
env num_cores=`cat /proc/cpuinfo | grep processor | wc -l`
也试过在提前启动这样做,但ENV乏设置有没有在EXEC节的任何值:
pre-start
NUM_CORES=32
end script
任何想法如何得到这个NUM_CORES设置不当,仍然得到新贵追踪正确的PID为我们的应用程序,一旦叉?