diff options
author | José Bollo <jose.bollo@iot.bzh> | 2018-01-22 10:07:42 +0100 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2018-01-22 10:07:42 +0100 |
commit | 2db7c770244f97c8674b6e9c78ed50319b38fea3 (patch) | |
tree | 4c3710d0f45e54d12187090f9abad8fb142b7a91 | |
parent | ef97895c1a00bddb7436c928e27f767496cfea5c (diff) |
afm-user-session: Create afm-user-session
This new executable is the simplest user session
manager: it waits the signal SIGTERM to stop and
thus release the session.
Change-Id: I557f27386c19ca3e2b28b21dd6a58918e9ca47be
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
-rw-r--r-- | src/CMakeLists.txt | 3 | ||||
-rw-r--r-- | src/afm-user-session.c | 38 |
2 files changed, 41 insertions, 0 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9921660..8f98c0d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -175,6 +175,9 @@ if(libsystemd_FOUND AND AFB_FOUND) LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/afm-binding.export-map" ) install(TARGETS afm-binding LIBRARY DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/afm) + + add_executable(afm-user-session afm-user-session.c) + install(TARGETS afm-user-session DESTINATION ${CMAKE_INSTALL_BINDIR}) else() MESSAGE(STATUS "Not creating daemons") endif() diff --git a/src/afm-user-session.c b/src/afm-user-session.c new file mode 100644 index 0000000..51acafe --- /dev/null +++ b/src/afm-user-session.c @@ -0,0 +1,38 @@ +/* + Copyright 2018 IoT.bzh + + author: José Bollo <jose.bollo@iot.bzh> + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#include <signal.h> +#include <systemd/sd-daemon.h> + +int main() +{ + sigset_t ass, bss; + + sigemptyset(&ass); + sigaddset(&ass, SIGTERM); + + sigfillset(&bss); + sigdelset(&bss, SIGTERM); + + sd_notify(0, "READY=1"); + sigprocmask(SIG_SETMASK, &bss, 0); + sigwaitinfo(&ass, 0); + + return 0; +} + |