diff options
Diffstat (limited to 'swaylock')
-rw-r--r-- | swaylock/main.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/swaylock/main.c b/swaylock/main.c index 49b24a3a..9b33aab9 100644 --- a/swaylock/main.c +++ b/swaylock/main.c @@ -1,3 +1,4 @@ +#define _XOPEN_SOURCE 500 #include "wayland-swaylock-client-protocol.h" #include <xkbcommon/xkbcommon.h> #include <xkbcommon/xkbcommon-names.h> @@ -460,12 +461,16 @@ int main(int argc, char **argv) { case 'u': show_indicator = false; break; - case 'f': - if (daemon(0, 0) != 0) { + case 'f': { + pid_t t = fork(); + if (t == -1) { sway_log(L_ERROR, "daemon call failed"); exit(EXIT_FAILURE); + } else if (t > 0) { + exit(0); } break; + } case 'r': if (line_source != LINE_SOURCE_DEFAULT) { sway_log(L_ERROR, "line source options conflict"); |