>From 073b269c35785a302d53e50af762c16883fb46ff Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Fri, 27 Jun 2014 17:24:16 +0200 Subject: [PATCH 6/7] TOOLS: New helper tool sss_signal A minimal tool whose only purpose is to signal the monitor with SIGUSR2. The tool will be executed by the system bus in order to provide system activation, so it's packaged in libexec. --- Makefile.am | 13 ++++++++++++- contrib/sssd.spec.in | 1 + src/tools/sss_signal.c | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 src/tools/sss_signal.c diff --git a/Makefile.am b/Makefile.am index bd8de4f785450c7c80f3946d223f32b836777e9c..8c21e88f5cfe4b5b909e6c79b9d5bd9b53e42f28 100644 --- a/Makefile.am +++ b/Makefile.am @@ -107,7 +107,9 @@ sssdlibexec_PROGRAMS = \ sssd_be \ krb5_child \ ldap_child \ - proxy_child + proxy_child \ + sss_signal \ + $(NULL) if BUILD_SUDO sssdlibexec_PROGRAMS += sssd_sudo endif @@ -1046,6 +1048,15 @@ sss_seed_LDADD = \ $(TOOLS_LIBS) \ $(SSSD_INTERNAL_LTLIBS) +sss_signal_SOURCES = \ + src/tools/sss_signal.c \ + $(SSSD_TOOLS_OBJ) \ + $(NULL) +sss_signal_LDADD = \ + $(TOOLS_LIBS) \ + $(SSSD_INTERNAL_LTLIBS) \ + $(NULL) + if BUILD_SUDO sss_sudo_cli_SOURCES = \ src/sss_client/common.c \ diff --git a/contrib/sssd.spec.in b/contrib/sssd.spec.in index 2b8bac993954050365ae0937c03ac5f43311d271..86a603925fc6837fab118563d1bd90c6909d4746 100644 --- a/contrib/sssd.spec.in +++ b/contrib/sssd.spec.in @@ -605,6 +605,7 @@ rm -rf $RPM_BUILD_ROOT %{_bindir}/sss_ssh_authorizedkeys %{_bindir}/sss_ssh_knownhostsproxy %{_sbindir}/sss_cache +%{_libexecdir}/%{servicename}/sss_signal %dir %{sssdstatedir} %dir %{_localstatedir}/cache/krb5rcache diff --git a/src/tools/sss_signal.c b/src/tools/sss_signal.c new file mode 100644 index 0000000000000000000000000000000000000000..efddcce3d12bbe270f30ea15af8ab899f4b03dca --- /dev/null +++ b/src/tools/sss_signal.c @@ -0,0 +1,37 @@ +/* + Authors: + Jakub Hrozek + + Copyright (C) 2014 Red Hat + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include + +#include "config.h" +#include "tools/tools_util.h" + +int main(int argc, const char **argv) +{ + int ret; + + ret = signal_sssd(SIGUSR2); + if (ret != EOK) { + ERROR("Could not signal SSSD. Is SSSD running?\n"); + return EXIT_FAILURE; + } + + return EXIT_SUCCESS; +} -- 1.9.3