From: José Bollo Date: Mon, 22 Jan 2018 09:07:42 +0000 (+0100) Subject: afm-user-session: Create afm-user-session X-Git-Tag: flounder_5.99.1~14 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fapp-framework-main.git;a=commitdiff_plain;h=2db7c770244f97c8674b6e9c78ed50319b38fea3 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 --- 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 + + 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 +#include + +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; +} +