diff options
author | koekeishiya <aasvi93@hotmail.com> | 2019-04-24 17:57:44 +0200 |
---|---|---|
committer | koekeishiya <aasvi93@hotmail.com> | 2019-04-24 17:57:44 +0200 |
commit | 97a2ea9744dfc1946bc022389caae834b62a298f (patch) | |
tree | 5fc397060f63f5cbb6cea4943325569e9043c167 /src/skhd.c | |
parent | d487bd4c40b9a6c21c7d6c70707f09610b7d1129 (diff) | |
download | skhd-97a2ea9744dfc1946bc022389caae834b62a298f.tar.gz skhd-97a2ea9744dfc1946bc022389caae834b62a298f.zip |
#77 make pid-file user-specific
Diffstat (limited to '')
-rw-r--r-- | src/skhd.c | 22 |
1 files changed, 19 insertions, 3 deletions
@@ -43,7 +43,7 @@ extern bool CGSIsSecureEventInputSet(void); #define global static #define SKHD_CONFIG_FILE ".skhdrc" -#define SKHD_PID_FILE "/tmp/skhd.pid" +#define SKHD_PIDFILE_FMT "/tmp/skhd_%s.pid" global unsigned major_version = 0; global unsigned minor_version = 3; @@ -192,9 +192,17 @@ sigusr1_handler(int signal) internal pid_t read_pid_file(void) { + char pid_file[255] = {}; pid_t pid = 0; - int handle = open(SKHD_PID_FILE, O_RDWR); + char *user = getenv("USER"); + if (user) { + snprintf(pid_file, sizeof(pid_file), SKHD_PIDFILE_FMT, user); + } else { + error("skhd: could not create path to pid-file because 'env USER' was not set! abort..\n"); + } + + int handle = open(pid_file, O_RDWR); if (handle == -1) { error("skhd: could not open pid-file..\n"); } @@ -212,9 +220,17 @@ read_pid_file(void) internal void create_pid_file(void) { + char pid_file[255] = {}; pid_t pid = getpid(); - int handle = open(SKHD_PID_FILE, O_CREAT | O_WRONLY, 0644); + char *user = getenv("USER"); + if (user) { + snprintf(pid_file, sizeof(pid_file), SKHD_PIDFILE_FMT, user); + } else { + error("skhd: could not create path to pid-file because 'env USER' was not set! abort..\n"); + } + + int handle = open(pid_file, O_CREAT | O_WRONLY, 0644); if (handle == -1) { error("skhd: could not create pid-file! abort..\n"); } |