]> git.mdlowis.com Git - proto/labwc.git/commitdiff
Set environment variable LABWC_PID
authorJohan Malm <jgm323@gmail.com>
Tue, 4 Oct 2022 20:48:57 +0000 (21:48 +0100)
committerConsolatis <35009135+Consolatis@users.noreply.github.com>
Fri, 14 Oct 2022 22:19:18 +0000 (00:19 +0200)
...to the pid of the compositor so that SIGHUP and SIGTERM can be sent to
specific instances using `kill -s <signal> <pid>` rather than
`killall -s <signal> labwc`

Issue #573

src/main.c

index 8ca6fe09a35f2d46a165fc46f0fc3f506c10325a..dc811f28a18954259cbc9fef5be7ed4f0e16318a 100644 (file)
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0-only
 #define _POSIX_C_SOURCE 200809L
 #include <string.h>
+#include <unistd.h>
 #include "common/dir.h"
 #include "common/fd_util.h"
 #include "common/font.h"
@@ -81,6 +82,19 @@ main(int argc, char *argv[])
        session_environment_init(rc.config_dir);
        rcxml_read(config_file);
 
+       /*
+        * Set environment variable LABWC_PID to the pid of the compositor
+        * so that SIGHUP and SIGTERM can be sent to specific instances using
+        * `kill -s <signal> <pid>` rather than `killall -s <signal> labwc`
+        */
+       char pid[32];
+       snprintf(pid, sizeof(pid), "%d", getpid());
+       if (setenv("LABWC_PID", pid, true) < 0) {
+               wlr_log_errno(WLR_ERROR, "unable to set LABWC_PID");
+       } else {
+               wlr_log(WLR_DEBUG, "LABWC_PID=%s", pid);
+       }
+
        if (!getenv("XDG_RUNTIME_DIR")) {
                wlr_log(WLR_ERROR, "XDG_RUNTIME_DIR is unset");
                exit(EXIT_FAILURE);