对"sd_notify"的未定义引用

undefined reference to `sd_notify'

本文关键字:未定义 引用 sd notify      更新时间:2023-10-16

我有一个创建很多进程的过程,我想识别(获取pid)其中一个孩子。循环遍历孩子会花费大量资源(不要问为什么)。所以我试图通过(以某种方式)确定它是否使用sd_notify并获取 pid 来获取进程的 pid(如果可能的话,我现在真的不知道)。我正在使用 ubuntu 14.04 并创建了很少的测试程序:

#include <systemd/sd-daemon.h>
#include <stdio.h>
int main()
{
  int a;
  a = sd_notify(0, "READY=1");
  printf("%d -> n", a);
  fflush(stdout);
}

但它给了我错误地说undefined reference to 'sd_notify'.

附言我发现sd_notify适用于systemd系统。在暴发户系统中相当于什么?或者如何确保我正在搜索的进程不使用此功能?或者是否可以使用 sd_notify 记录进程发送的所有消息?

尝试安装 libsystemd-daemon-devel 然后使用

g++ -o sig sig.cpp -lsystemd-daemon

您在编译时未链接到所需的库。尝试将选项 -lsystemd 添加到编译命令行。