Ensure dlog is started before regular Tizen services wanting to use it 66/90566/7
authorKarol Lewandowski <k.lewandowsk@samsung.com>
Thu, 29 Sep 2016 19:28:28 +0000 (21:28 +0200)
committerMichal Bloch <m.bloch@samsung.com>
Tue, 11 Oct 2016 18:19:36 +0000 (20:19 +0200)
Change-Id: I9b80c2ae97b428be3309fbc30eb000d7f8716fa9

Makefile.am
configure.ac
packaging/dlog.spec
packaging/dlog_logger.service
src/logger/logger.c

index 35bbbf5..9c9c7f5 100755 (executable)
@@ -50,8 +50,12 @@ bin_PROGRAMS += dlog_logger
 
 dlog_logger_CFLAGS =  \
        $(AM_CFLAGS) \
+       $(LIBSYSTEMD_CFLAGS) \
        -fPIE
 
+dlog_logger_LDADD =  \
+       $(LIBSYSTEMD_LIBS)
+
 dlog_logger_LDFLAGS = \
        $(AM_LDFLAGS) \
        -pie
index 7a51174..425e046 100755 (executable)
@@ -48,6 +48,7 @@ AC_CHECK_FUNCS([memset])
 
 PKG_PROG_PKG_CONFIG
 PKG_CHECK_MODULES([CAPI_BASE_COMMON], [capi-base-common])
+PKG_CHECK_MODULES([LIBSYSTEMD], [libsystemd])
 
 AC_SUBST(TZ_SYS_ETC)
 
index 4d6262a..9aa1a2e 100755 (executable)
@@ -22,6 +22,7 @@ BuildRequires: libtool
 BuildRequires: pkgconfig(capi-base-common)
 BuildRequires: pkgconfig(libudev)
 BuildRequires: pkgconfig(libtzplatform-config)
+BuildRequires: pkgconfig(libsystemd)
 Requires(post): coreutils
 Requires(post): /usr/bin/systemctl
 Requires(postun): /usr/bin/systemctl
@@ -104,11 +105,11 @@ install -m 0644 configs/dlog.conf.pipe %{buildroot}%{TZ_SYS_ETC}/dlog.conf.pipe
 install -m 0644 configs/dlog.conf.kmsg %{buildroot}%{TZ_SYS_ETC}/dlog.conf.kmsg
 install -m 0644 configs/dlog.conf.logger %{buildroot}%{TZ_SYS_ETC}/dlog.conf.logger
 
-mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants/
+mkdir -p %{buildroot}%{_unitdir}/basic.target.wants/
 install -m 0644 %SOURCE301 %{buildroot}%{_unitdir}
 
 install -m 0644 %SOURCE302 %{buildroot}%{_unitdir}/dlog_logger.path
-ln -s ../dlog_logger.service %{buildroot}%{_unitdir}/multi-user.target.wants/dlog_logger.service
+ln -s ../dlog_logger.service %{buildroot}%{_unitdir}/basic.target.wants/dlog_logger.service
 
 mkdir -p %{buildroot}%{_unitdir}/sysinit.target.wants/
 install -m 0644 %SOURCE401 %{buildroot}%{_unitdir}
@@ -193,7 +194,7 @@ ln %{upgrade_file_path}/data/dlog.conf.pipe %{upgrade_file_path}/data/dlog.conf
 %attr(664,log,log) %{TZ_SYS_ETC}/dlog.conf.pipe
 %attr(755,log,log) /var/log/dlog
 %attr(750,log,log) %{_bindir}/dlog_logger
-%{_unitdir}/multi-user.target.wants/dlog_logger.service
+%{_unitdir}/basic.target.wants/dlog_logger.service
 %{_unitdir}/dlog_logger.service
 %{_unitdir}/dlog_logger.path
 %attr(664,log,log) /usr/lib/tmpfiles.d/dlog-run.conf
index 0627d1b..e89a58b 100755 (executable)
@@ -1,16 +1,19 @@
 [Unit]
-Description=Dumps dlog logs onto disk
+Description=dlog logging service
+After=dloginit.service systemd-tmpfiles-setup.service local-fs.target
+Before=basic.target
+DefaultDependencies=no
 
 [Service]
 # Needed for access to /dev/kmsg, the daemon drops its privileges to log,log on its own after that
 User=root
 Group=root
-
 # the line below prevents logger from repeatedly statting /etc/localtime each time it wanted a timestamp, increasing performance.
+Type=notify
 Environment=TZ=:/etc/localtime
 SmackProcessLabel=System::Privileged
 ExecStart=/usr/bin/dlog_logger -b 99 -t 600
 Restart=always
 
 [Install]
-WantedBy=multi-user.target
+WantedBy=basic.target
index 597f930..b6bc344 100644 (file)
@@ -36,6 +36,7 @@
 #include <logpipe.h>
 #include <log_file.h>
 #include <logconfig.h>
+#include <systemd/sd-daemon.h>
 
 #define LIST_FOREACH(head, i)                                  \
        for ((i) = (head); i; (i) = (i)->next)
@@ -1728,6 +1729,8 @@ int main(int argc, char** argv)
                return r;
        }
 
+       sd_notify(0, "READY=1");
+
        reset_self_privileges();
 
        r = logger_parse_configs(server, &config);