makefile - 在 Makefile 中获取最后一个进程的 PID

标签 makefile pid

我的 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/

相关文章:

linux - 从 bash 脚本启动进程时的不同 pid

python - 如何在 Windows 操作系统上的 python 中根据其 PID 确定正在运行的进程?

linux - 在unix中,我通过提供ppid来使用kill命令,然后它关闭终端。为什么? kill -9 ppid

c++ - Makefile 中的 "relink"意味着什么?

C++ linux 在部署环境中安装可执行文件

c - 为什么gnu make命令默认编译同名的c文件

linux - top从哪里获取实时数据

c - 知道pid时如何在C中终止进程

c++ - undefined reference 错误 Makefile c++

bash - 如何删除生成文件中的 1 个字符