Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 哪个进程正在发送SIGKILL_Linux_Crash_Signals_Dbus_Sigkill - Fatal编程技术网

Linux 哪个进程正在发送SIGKILL

Linux 哪个进程正在发送SIGKILL,linux,crash,signals,dbus,sigkill,Linux,Crash,Signals,Dbus,Sigkill,在我的linux系统中,我有一个很早就启动的守护进程(在启动期间)。 启动期间的守护进程只是初始化g_dbus名称。 具体而言: guint id = g_bus_own_name ( G_BUS_TYPE_SESSION, DBUS_NAME, G_BUS_NAME_OWNER_FLAGS_NONE, bus_a

在我的linux系统中,我有一个很早就启动的守护进程(在启动期间)。 启动期间的守护进程只是初始化g_dbus名称。 具体而言:

        guint id = g_bus_own_name ( G_BUS_TYPE_SESSION,
                            DBUS_NAME,
                            G_BUS_NAME_OWNER_FLAGS_NONE,
                            bus_acquired_handler,
                            name_acquired_handler,
                            name_lost_handler,
                            NULL,
                            NULL);
但令我惊讶的是,我总是这样:

        ##### deliver signal SIG : 9, [BT]<Process Name>#1(679) get_signal_to_deliver
        ##### deliver signal SIG : 9, [BT]<Process Name>#2(681) get_signal_to_deliver
但问题是,不知何故,dmesg是空的。(我认为这是有目的的)

我还检查了进程中的全局和静态变量&没有分配大内存。此外,也没有内存泄漏

我的进程在系统中也有root权限,所以这也不是问题

最后一点。从systemd(这个守护进程的)自动重启两到三次之后,就完全没有问题了

有人能帮助理解这种行为吗?这样我就能解决问题。

我解决了我的问题。 虽然我不是这方面的专家,但以下是我解决问题的方法&这让我得出了正在发生的事情的结论

首先是解决方案,然后我们将尝试推理

检查系统总线是否启动:

          while(conn==NULL) {
             dbus_bus_get(DBUS_BUS_SYSTEM,&err);
             if(dbus_error_is_set(&err)){
                 usleep(1000*50);
              }
之后,只需获取系统总线:

    guint id = g_bus_own_name ( G_BUS_TYPE_SYSTEM,
                        DBUS_NAME,
                        G_BUS_NAME_OWNER_FLAGS_NONE,
                        bus_acquired_handler,
                        name_acquired_handler,
                        name_lost_handler,
                        NULL,
                        NULL);                    
现在没有信号&守护进程工作顺利

现在说说理由。 我想,早些时候我试图获取会话总线,在启动时它没有被创建,因此内核向我的进程发送信号9。所以,我转向了系统总线,它比会话总线早很多。 此外,在获得系统总线之前,确保系统总线已启动是非常重要的&因此解决方案就是这样

要回答哪个进程发送sigkill,在我看来,并没有特别的进程。它来自内核本身

希望这对其他人也有用

    guint id = g_bus_own_name ( G_BUS_TYPE_SYSTEM,
                        DBUS_NAME,
                        G_BUS_NAME_OWNER_FLAGS_NONE,
                        bus_acquired_handler,
                        name_acquired_handler,
                        name_lost_handler,
                        NULL,
                        NULL);