diff mbox

[ndctl,v11,3/5] ndctl, monitor: add the unit file of systemd for ndctl-monitor service

Message ID 20180711030012.9186-4-qi.fuli@jp.fujitsu.com (mailing list archive)
State New, archived
Headers show

Commit Message

QI Fuli July 11, 2018, 3 a.m. UTC
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 <qi.fuli@jp.fujitsu.com>
---
 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

Comments

Verma, Vishal L July 13, 2018, 2:46 a.m. UTC | #1
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 <qi.fuli@jp.fujitsu.com>
> ---
>  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 0000000..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}
QI Fuli July 13, 2018, 12:57 p.m. UTC | #2
> -----Original Message-----

> From: Verma, Vishal L [mailto:vishal.l.verma@intel.com]

> Sent: Friday, July 13, 2018 11:47 AM

> To: linux-nvdimm@lists.01.org; Qi, Fuli/斉 福利 <qi.fuli@jp.fujitsu.com>

> 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 <qi.fuli@jp.fujitsu.com>

> > ---

> >  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 0000000..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}
diff mbox

Patch

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 0000000..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}