我的 Makefile 看起来像这样:
setsid ./CppServer>daemon.log 2>&1 &
echo $!>daemon.pid
我期望它做的是将 my_awesome_script 的 PID 存储在相应的文件中。然而那里什么都没有。那么问题出在哪里呢?
最佳答案
如果你的 makefile 真的像这样你会得到一个错误,因为我没有看到任何实际的 make 语法,只有 shell 语法。然而,我的 Crystal 球告诉我,这两行可能是规则配方的一部分。如果是,您应该意识到 make 是如何执行配方的;对于每一行,都会创建一个单独的子shell,其中该行的命令是独立执行的:您的两个命令对彼此的环境一无所知。如果您希望在同一个子 shell 中执行两个命令,您应该将它们作为一行发出(必要时使用行继续符),或者使用 make 的 ONESHELL 指令。
关于makefile - 在 Makefile 中获取最后一个进程的 PID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5768034/