Re: [ndctl PATCH v11 3/5] ndctl, monitor: add the unit file of systemd for ndctl-monitor service
Hi Qi, On 07/13/2018 08:57 AM, Qi, Fuli wrote: >> -Original Message- >> From: Verma, Vishal L [mailto:vishal.l.ve...@intel.com] >> Sent: Friday, July 13, 2018 11:47 AM >> To: linux-nvdimm@lists.01.org; Qi, Fuli/斉 福利 >> Subject: Re: [ndctl PATCH v11 3/5] ndctl, monitor: add the unit file of >> systemd for >> ndctl-monitor service >> >> >> On Wed, 2018-07-11 at 12:00 +0900, QI Fuli wrote: >>> This patch adds the systemd unit file for ndctl-monitor service. >>> The systemd unit directory can be configured by setting environment >>> variable "--with-systemd-unit-dir[=DIR]". >>> >>> A monitor daemon can be started as a system service: >>># systemctl start ndctl-monitor.service >>> >>> Signed-off-by: QI Fuli >>> --- >>> autogen.sh | 3 ++- >>> configure.ac| 22 ++ >>> ndctl/Makefile.am | 4 >>> ndctl/ndctl-monitor.service | 7 +++ >>> 4 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 >>> ndctl/ndctl-monitor.service >> >> We install the service unit file when doing a 'make install', but I think >> this also >> needs an update to the RPM spec file so that RPM knows about this too. >> > > Yes, I think both the configuration file and the service unit file are need > to update the > RPM spec file. I knew that hard code the path of the files is not right, and > I tried to > add %{_monitor_configdir}/monitor.conf and > %{_systemd_unitdir}/ndctl-monitor.service in ndctl.spec.in, > but I got failed. Would you please tell me how to update the RPM spec file? How about the following? diff --git a/ndctl.spec.in b/ndctl.spec.in index e2c879c..07b85a3 100644 --- a/ndctl.spec.in +++ b/ndctl.spec.in @@ -116,6 +116,8 @@ make check %{_bindir}/ndctl %{_mandir}/man1/ndctl* %{bashcompdir}/ +%{_sysconfdir}/ndctl/monitor.conf +%{_unitdir}/ndctl-monitor.service %files -n daxctl %defattr(-,root,root) Thanks, Masa > > Thank you very much. > QI > >>> >>> diff --git a/autogen.sh b/autogen.sh >>> index 2a52688..21b0e25 100755 >>> --- a/autogen.sh >>> +++ b/autogen.sh >>> @@ -17,7 +17,8 @@ libdir() { >>> >>> args="--prefix=/usr \ >>> --sysconfdir=/etc \ >>> ---libdir=$(libdir /usr/lib)" >>> +--libdir=$(libdir /usr/lib) \ >>> +--with-systemd-unit-dir" >>> >>> echo >>> echo " >>> " >>> diff --git a/configure.ac b/configure.ac index cf44260..a5ba9a1 100644 >>> --- a/configure.ac >>> +++ b/configure.ac >>> @@ -143,6 +143,27 @@ AC_CHECK_FUNCS([ \ >>> secure_getenv\ >>> ]) >>> >>> +PKG_PROG_PKG_CONFIG >>> +AC_ARG_WITH([systemd-unit-dir], >>> + AS_HELP_STRING([--with-systemd-unit-dir[=DIR]], >>> + [Directory for systemd service files]), >>> + [], >>> + [with_systemd_unit_dir=yes]) >>> + >>> +if test "x$with_systemd_unit_dir" = "xyes"; then >>> + def_systemd_unit_dir=$($PKG_CONFIG -- >>> variable=systemdsystemunitdir systemd) >>> + if test "x$def_systemd_unit_dir" = "x"; then >>> + AC_MSG_ERROR([systemd support requested but pkg- >>> config unable to query systemd package]) >>> + with_systemd_unit_dir=no >>> + else >>> + with_systemd_unit_dir="$def_systemd_unit_dir" >>> + fi >>> +fi >>> + >>> +AS_IF([test "x$with_systemd_unit_dir" != "xno"], >>> + [AC_SUBST([systemd_unitdir], [$with_systemd_unit_dir])]) >>> +AM_CONDITIONAL([ENABLE_SYSTEMD_UNIT_DIR], [test >>> "x$with_systemd_unit_dir" != "xno"]) >>> + >>> my_CFLAGS="\ >>> -Wall \ >>> -Wchar-subscripts \ >>> @@ -184,6 +205,7 @@ AC_MSG_RESULT([ >>> sysconfdir: ${sysconfdir} >>> libdir: ${libdir} >>> includedir: ${includedir} >>> + systemd-unit-dir: ${systemd_unitdir} >>> >>> compiler: ${CC} >>> cflags: ${CFLAGS} >>> diff --git a/ndctl/Makefile.am b/ndctl/Makefile.am index >>> ae3d894..9d008d5 100644 >>> --- a/ndctl/Makefile.am >>> +++ b/ndctl/Makefile.am >>> @@ -47,3 +47,7 @@ monitor_config_file = monitor.conf >>> monitor_configdir = /etc/ndctl/ monitor_config_DATA = >>> $(monitor_config_file) EXTRA_DIST += $(monitor_config_file) >>> + >>> +if ENABLE_SYSTEMD_UNIT_DIR >>> +systemd_unit_DATA = ndctl-monitor.service endif >>> diff --git a/ndctl/ndctl-monitor.service b/ndctl/ndctl- >>> monitor.service new file mode 100644 index 000..44f9326 >>> --- /dev/null >>> +++ b/ndctl/ndctl-monitor.service >>> @@ -0,0 +1,7 @@ >>> +[Unit] >>> +Description=Ndctl Monitor Daemon >>> + >>> +[Service] >>> +Type=forking >>> +ExecStart=/usr/bin/ndctl monitor --daemon ExecStop=/bin/kill >>> +${MAINPID} > ___ > Linux-nvdimm mailing list > Linux-nvdimm@lists.01.org > https://lists.01.org/mailman/listinfo/linux-nvdimm > ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
RE: [ndctl PATCH v11 3/5] ndctl, monitor: add the unit file of systemd for ndctl-monitor service
> -Original Message- > From: Verma, Vishal L [mailto:vishal.l.ve...@intel.com] > Sent: Friday, July 13, 2018 11:47 AM > To: linux-nvdimm@lists.01.org; Qi, Fuli/斉 福利 > Subject: Re: [ndctl PATCH v11 3/5] ndctl, monitor: add the unit file of > systemd for > ndctl-monitor service > > > On Wed, 2018-07-11 at 12:00 +0900, QI Fuli wrote: > > This patch adds the systemd unit file for ndctl-monitor service. > > The systemd unit directory can be configured by setting environment > > variable "--with-systemd-unit-dir[=DIR]". > > > > A monitor daemon can be started as a system service: > ># systemctl start ndctl-monitor.service > > > > Signed-off-by: QI Fuli > > --- > > autogen.sh | 3 ++- > > configure.ac| 22 ++ > > ndctl/Makefile.am | 4 > > ndctl/ndctl-monitor.service | 7 +++ > > 4 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 > > ndctl/ndctl-monitor.service > > We install the service unit file when doing a 'make install', but I think > this also > needs an update to the RPM spec file so that RPM knows about this too. > Yes, I think both the configuration file and the service unit file are need to update the RPM spec file. I knew that hard code the path of the files is not right, and I tried to add %{_monitor_configdir}/monitor.conf and %{_systemd_unitdir}/ndctl-monitor.service in ndctl.spec.in, but I got failed. Would you please tell me how to update the RPM spec file? Thank you very much. QI > > > > diff --git a/autogen.sh b/autogen.sh > > index 2a52688..21b0e25 100755 > > --- a/autogen.sh > > +++ b/autogen.sh > > @@ -17,7 +17,8 @@ libdir() { > > > > args="--prefix=/usr \ > > --sysconfdir=/etc \ > > ---libdir=$(libdir /usr/lib)" > > +--libdir=$(libdir /usr/lib) \ > > +--with-systemd-unit-dir" > > > > echo > > echo " > > " > > diff --git a/configure.ac b/configure.ac index cf44260..a5ba9a1 100644 > > --- a/configure.ac > > +++ b/configure.ac > > @@ -143,6 +143,27 @@ AC_CHECK_FUNCS([ \ > > secure_getenv\ > > ]) > > > > +PKG_PROG_PKG_CONFIG > > +AC_ARG_WITH([systemd-unit-dir], > > + AS_HELP_STRING([--with-systemd-unit-dir[=DIR]], > > + [Directory for systemd service files]), > > + [], > > + [with_systemd_unit_dir=yes]) > > + > > +if test "x$with_systemd_unit_dir" = "xyes"; then > > + def_systemd_unit_dir=$($PKG_CONFIG -- > > variable=systemdsystemunitdir systemd) > > + if test "x$def_systemd_unit_dir" = "x"; then > > + AC_MSG_ERROR([systemd support requested but pkg- > > config unable to query systemd package]) > > + with_systemd_unit_dir=no > > + else > > + with_systemd_unit_dir="$def_systemd_unit_dir" > > + fi > > +fi > > + > > +AS_IF([test "x$with_systemd_unit_dir" != "xno"], > > + [AC_SUBST([systemd_unitdir], [$with_systemd_unit_dir])]) > > +AM_CONDITIONAL([ENABLE_SYSTEMD_UNIT_DIR], [test > > "x$with_systemd_unit_dir" != "xno"]) > > + > > my_CFLAGS="\ > > -Wall \ > > -Wchar-subscripts \ > > @@ -184,6 +205,7 @@ AC_MSG_RESULT([ > > sysconfdir: ${sysconfdir} > > libdir: ${libdir} > > includedir: ${includedir} > > + systemd-unit-dir: ${systemd_unitdir} > > > > compiler: ${CC} > > cflags: ${CFLAGS} > > diff --git a/ndctl/Makefile.am b/ndctl/Makefile.am index > > ae3d894..9d008d5 100644 > > --- a/ndctl/Makefile.am > > +++ b/ndctl/Makefile.am > > @@ -47,3 +47,7 @@ monitor_config_file = monitor.conf > > monitor_configdir = /etc/ndctl/ monitor_config_DATA = > > $(monitor_config_file) EXTRA_DIST += $(monitor_config_file) > > + > > +if ENABLE_SYSTEMD_UNIT_DIR > > +systemd_unit_DATA = ndctl-monitor.service endif > > diff --git a/ndctl/ndctl-monitor.service b/ndctl/ndctl- > > monitor.service new file mode 100644 index 000..44f9326 > > --- /dev/null > > +++ b/ndctl/ndctl-monitor.service > > @@ -0,0 +1,7 @@ > > +[Unit] > > +Description=Ndctl Monitor Daemon > > + > > +[Service] > > +Type=forking > > +ExecStart=/usr/bin/ndctl monitor --daemon ExecStop=/bin/kill > > +${MAINPID} ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
Re: [ndctl PATCH v11 3/5] ndctl, monitor: add the unit file of systemd for ndctl-monitor service
On Wed, 2018-07-11 at 12:00 +0900, QI Fuli wrote: > This patch adds the systemd unit file for ndctl-monitor service. > The systemd unit directory can be configured by setting environment > variable "--with-systemd-unit-dir[=DIR]". > > A monitor daemon can be started as a system service: ># systemctl start ndctl-monitor.service > > Signed-off-by: QI Fuli > --- > autogen.sh | 3 ++- > configure.ac| 22 ++ > ndctl/Makefile.am | 4 > ndctl/ndctl-monitor.service | 7 +++ > 4 files changed, 35 insertions(+), 1 deletion(-) > create mode 100644 ndctl/ndctl-monitor.service We install the service unit file when doing a 'make install', but I think this also needs an update to the RPM spec file so that RPM knows about this too. > > diff --git a/autogen.sh b/autogen.sh > index 2a52688..21b0e25 100755 > --- a/autogen.sh > +++ b/autogen.sh > @@ -17,7 +17,8 @@ libdir() { > > args="--prefix=/usr \ > --sysconfdir=/etc \ > ---libdir=$(libdir /usr/lib)" > +--libdir=$(libdir /usr/lib) \ > +--with-systemd-unit-dir" > > echo > echo " > " > diff --git a/configure.ac b/configure.ac > index cf44260..a5ba9a1 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -143,6 +143,27 @@ AC_CHECK_FUNCS([ \ > secure_getenv\ > ]) > > +PKG_PROG_PKG_CONFIG > +AC_ARG_WITH([systemd-unit-dir], > + AS_HELP_STRING([--with-systemd-unit-dir[=DIR]], > + [Directory for systemd service files]), > + [], > + [with_systemd_unit_dir=yes]) > + > +if test "x$with_systemd_unit_dir" = "xyes"; then > + def_systemd_unit_dir=$($PKG_CONFIG -- > variable=systemdsystemunitdir systemd) > + if test "x$def_systemd_unit_dir" = "x"; then > + AC_MSG_ERROR([systemd support requested but pkg- > config unable to query systemd package]) > + with_systemd_unit_dir=no > + else > + with_systemd_unit_dir="$def_systemd_unit_dir" > + fi > +fi > + > +AS_IF([test "x$with_systemd_unit_dir" != "xno"], > + [AC_SUBST([systemd_unitdir], [$with_systemd_unit_dir])]) > +AM_CONDITIONAL([ENABLE_SYSTEMD_UNIT_DIR], [test > "x$with_systemd_unit_dir" != "xno"]) > + > my_CFLAGS="\ > -Wall \ > -Wchar-subscripts \ > @@ -184,6 +205,7 @@ AC_MSG_RESULT([ > sysconfdir: ${sysconfdir} > libdir: ${libdir} > includedir: ${includedir} > + systemd-unit-dir: ${systemd_unitdir} > > compiler: ${CC} > cflags: ${CFLAGS} > diff --git a/ndctl/Makefile.am b/ndctl/Makefile.am > index ae3d894..9d008d5 100644 > --- a/ndctl/Makefile.am > +++ b/ndctl/Makefile.am > @@ -47,3 +47,7 @@ monitor_config_file = monitor.conf > monitor_configdir = /etc/ndctl/ > monitor_config_DATA = $(monitor_config_file) > EXTRA_DIST += $(monitor_config_file) > + > +if ENABLE_SYSTEMD_UNIT_DIR > +systemd_unit_DATA = ndctl-monitor.service > +endif > diff --git a/ndctl/ndctl-monitor.service b/ndctl/ndctl- > monitor.service > new file mode 100644 > index 000..44f9326 > --- /dev/null > +++ b/ndctl/ndctl-monitor.service > @@ -0,0 +1,7 @@ > +[Unit] > +Description=Ndctl Monitor Daemon > + > +[Service] > +Type=forking > +ExecStart=/usr/bin/ndctl monitor --daemon > +ExecStop=/bin/kill ${MAINPID} ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm
[ndctl PATCH v11 3/5] ndctl, monitor: add the unit file of systemd for ndctl-monitor service
This patch adds the systemd unit file for ndctl-monitor service. The systemd unit directory can be configured by setting environment variable "--with-systemd-unit-dir[=DIR]". A monitor daemon can be started as a system service: # systemctl start ndctl-monitor.service Signed-off-by: QI Fuli --- autogen.sh | 3 ++- configure.ac| 22 ++ ndctl/Makefile.am | 4 ndctl/ndctl-monitor.service | 7 +++ 4 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 ndctl/ndctl-monitor.service diff --git a/autogen.sh b/autogen.sh index 2a52688..21b0e25 100755 --- a/autogen.sh +++ b/autogen.sh @@ -17,7 +17,8 @@ libdir() { args="--prefix=/usr \ --sysconfdir=/etc \ ---libdir=$(libdir /usr/lib)" +--libdir=$(libdir /usr/lib) \ +--with-systemd-unit-dir" echo echo "" diff --git a/configure.ac b/configure.ac index cf44260..a5ba9a1 100644 --- a/configure.ac +++ b/configure.ac @@ -143,6 +143,27 @@ AC_CHECK_FUNCS([ \ secure_getenv\ ]) +PKG_PROG_PKG_CONFIG +AC_ARG_WITH([systemd-unit-dir], + AS_HELP_STRING([--with-systemd-unit-dir[=DIR]], + [Directory for systemd service files]), + [], + [with_systemd_unit_dir=yes]) + +if test "x$with_systemd_unit_dir" = "xyes"; then + def_systemd_unit_dir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd) + if test "x$def_systemd_unit_dir" = "x"; then + AC_MSG_ERROR([systemd support requested but pkg-config unable to query systemd package]) + with_systemd_unit_dir=no + else + with_systemd_unit_dir="$def_systemd_unit_dir" + fi +fi + +AS_IF([test "x$with_systemd_unit_dir" != "xno"], + [AC_SUBST([systemd_unitdir], [$with_systemd_unit_dir])]) +AM_CONDITIONAL([ENABLE_SYSTEMD_UNIT_DIR], [test "x$with_systemd_unit_dir" != "xno"]) + my_CFLAGS="\ -Wall \ -Wchar-subscripts \ @@ -184,6 +205,7 @@ AC_MSG_RESULT([ sysconfdir: ${sysconfdir} libdir: ${libdir} includedir: ${includedir} + systemd-unit-dir: ${systemd_unitdir} compiler: ${CC} cflags: ${CFLAGS} diff --git a/ndctl/Makefile.am b/ndctl/Makefile.am index ae3d894..9d008d5 100644 --- a/ndctl/Makefile.am +++ b/ndctl/Makefile.am @@ -47,3 +47,7 @@ monitor_config_file = monitor.conf monitor_configdir = /etc/ndctl/ monitor_config_DATA = $(monitor_config_file) EXTRA_DIST += $(monitor_config_file) + +if ENABLE_SYSTEMD_UNIT_DIR +systemd_unit_DATA = ndctl-monitor.service +endif diff --git a/ndctl/ndctl-monitor.service b/ndctl/ndctl-monitor.service new file mode 100644 index 000..44f9326 --- /dev/null +++ b/ndctl/ndctl-monitor.service @@ -0,0 +1,7 @@ +[Unit] +Description=Ndctl Monitor Daemon + +[Service] +Type=forking +ExecStart=/usr/bin/ndctl monitor --daemon +ExecStop=/bin/kill ${MAINPID} -- 2.18.0 ___ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm