diff options
Diffstat (limited to 'src/afm-user-session.c')
-rw-r--r-- | src/afm-user-session.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/src/afm-user-session.c b/src/afm-user-session.c index 51acafe..445db91 100644 --- a/src/afm-user-session.c +++ b/src/afm-user-session.c @@ -16,23 +16,20 @@ limitations under the License. */ -#include <signal.h> +#include <stdio.h> +#include <unistd.h> #include <systemd/sd-daemon.h> +extern char **environ; + int main() { - sigset_t ass, bss; - - sigemptyset(&ass); - sigaddset(&ass, SIGTERM); - - sigfillset(&bss); - sigdelset(&bss, SIGTERM); + char buffer[100]; + char *args[] = { "/bin/systemctl", "--wait", "start", buffer, 0 }; + sprintf(buffer, "afm-user-session@%d.target", (int)getuid()); sd_notify(0, "READY=1"); - sigprocmask(SIG_SETMASK, &bss, 0); - sigwaitinfo(&ass, 0); - - return 0; + execve(args[0], args, environ); + return 1; } |