From: "akuster" <akuster808@gmail.com>
To: Diego Sueiro <Diego.Sueiro@arm.com>,
"openembedded-core@lists.openembedded.org"
<openembedded-core@lists.openembedded.org>
Cc: nd <nd@arm.com>, "Ross Burton" <Ross.Burton@arm.com>,
"Kamil Dzieżyk" <Kamil.Dziezyk@arm.com>
Subject: Re: [OE-core] [PATCH] kea: add init scripts
Date: Wed, 14 Oct 2020 07:05:20 -0700 [thread overview]
Message-ID: <7e320cf5-695e-a575-fd33-d4ee51875295@gmail.com> (raw)
In-Reply-To: <AM6PR08MB34615B96808A64EF05A1024B92050@AM6PR08MB3461.eurprd08.prod.outlook.com>
On 10/14/20 12:43 AM, Diego Sueiro wrote:
>> -----Original Message-----
>> From: openembedded-core@lists.openembedded.org <openembedded-
>> core@lists.openembedded.org> On Behalf Of akuster via
>> lists.openembedded.org
>> Sent: 14 October 2020 06:08
>> To: openembedded-core@lists.openembedded.org
>> Subject: [OE-core] [PATCH] kea: add init scripts
>>
>> [ Yocto # 14074 ]
>>
>> Add init scripts for dhcp4,6 and ddns
>>
>> Signed-off-by: Armin Kuster <akuster808@gmail.com>
> The keactrl is not working as expected in a core-image-minimal. I'm getting the following
> output for `keactrl status`:
> ```
> /usr/sbin/keactrl: line 101: rev: not found
> /usr/sbin/keactrl: line 101: rev: not found
> DHCPv4 server: inactive
> /usr/sbin/keactrl: line 101: rev: not found
> /usr/sbin/keactrl: line 101: rev: not found
> DHCPv6 server: inactive
> /usr/sbin/keactrl: line 101: rev: not found
> /usr/sbin/keactrl: line 101: rev: not found
> DHCP DDNS: inactive
> /usr/sbin/keactrl: line 101: rev: not found
> /usr/sbin/keactrl: line 101: rev: not found
> Control Agent: inactive
> Kea DHCPv4 configuration file: /etc/kea/kea-dhcp4.conf
> Kea DHCPv6 configuration file: /etc/kea/kea-dhcp6.conf
> Kea DHCP DDNS configuration file: /etc/kea/kea-dhcp-ddns.conf
> Kea Control Agent configuration file: /etc/kea/kea-ctrl-agent.conf
> keactrl configuration file: /etc/kea/keactrl.conf
> ```
>
> And the dhcp4 server is running ` ps | grep kea-dhcp4`:
> ```
> 773 root 51000 S /usr/sbin/kea-dhcp4 -c /etc/kea/kea-dhcp4.conf -d
> ```
>
> The problem is that the oe-core busybox does not include the `rev` applet and
> it doesn't support `ps -p`:
> https://github.com/isc-projects/kea/blob/master/src/bin/keactrl/keactrl.in#L141
>
> We need to build the busybox `rev` and `pgreg` applets and have something like:
> ```
> --- kea-1.7.10.original/src/bin/keactrl/keactrl.in
> +++ kea-1.7.10/src/bin/keactrl/keactrl.in
> @@ -137,8 +137,8 @@
> # Get the PID from the PID file (if it exists)
> get_pid_from_file "${proc_name}"
> if [ ${_pid} -gt 0 ]; then
> - # Use ps to check if PID is alive
> - ps -p ${_pid} 1>/dev/null
> + # Use pgrep and grep to check if PID is alive
> + pgrep -v 1 | grep ${_pid} 1>/dev/null
> retcode=$?
> if [ $retcode -eq 0 ]; then
> # No error, so PID IS ALIVE
thanks for the feedback. I did not notice those messages.
I got some things to think about.
-armin
> ```
>
> Cheers,
>
> Diego Sueiro
>
>> ---
>> .../kea/files/kea-dhcp-ddns-server | 46 ++++++++++++++++++
>> .../kea/files/kea-dhcp4-server | 46 ++++++++++++++++++
>> .../kea/files/kea-dhcp6-server | 47 +++++++++++++++++++
>> meta/recipes-connectivity/kea/kea_1.7.10.bb | 13 ++++-
>> 4 files changed, 151 insertions(+), 1 deletion(-) create mode 100644
>> meta/recipes-connectivity/kea/files/kea-dhcp-ddns-server
>> create mode 100644 meta/recipes-connectivity/kea/files/kea-dhcp4-server
>> create mode 100644 meta/recipes-connectivity/kea/files/kea-dhcp6-server
>>
>> diff --git a/meta/recipes-connectivity/kea/files/kea-dhcp-ddns-server
>> b/meta/recipes-connectivity/kea/files/kea-dhcp-ddns-server
>> new file mode 100644
>> index 00000000000..fe19179f290
>> --- /dev/null
>> +++ b/meta/recipes-connectivity/kea/files/kea-dhcp-ddns-server
>> @@ -0,0 +1,46 @@
>> +#!/bin/sh
>> +### BEGIN INIT INFO
>> +# Provides: kea-dhcp-ddns-server
>> +# Required-Start: $local_fs $network $remote_fs $syslog
>> +# Required-Stop: $local_fs $network $remote_fs $syslog
>> +# Default-Start: 2 3 4 5
>> +# Default-Stop: 0 1 6
>> +# Short-Description: ISC KEA DHCP IPv6 Server ### END INIT INFO
>> +
>> +PATH=/sbin:/usr/sbin:/bin:/usr/bin
>> +DESC="kea-dhcp-ddns-server"
>> +NAME=kea-dhcp-ddns
>> +DAEMON=/usr/sbin/keactrl
>> +DAEMON_ARGS=" -s dhcp_ddns"
>> +
>> +set -e
>> +
>> +# Exit if the package is not installed
>> +[ -x "$DAEMON" ] || exit 0
>> +
>> +# Source function library.
>> +. /etc/init.d/functions
>> +
>> +case "$1" in
>> + start)
>> + echo -n "Starting $DESC: "
>> + start-stop-daemon -S -b -n $NAME -x $DAEMON -- start $DAEMON_ARGS
>> + echo "done."
>> + ;;
>> + stop)
>> + echo -n "Stopping $DESC: "
>> + kpid=`pidof $NAME`
>> + kill $kpid
>> + echo "done."
>> + ;;
>> + restart|force-reload)
>> + #
>> + $0 stop
>> + $0 start
>> + ;;
>> + *)
>> + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
> status is not implemented. The same applies to the other init scripts.
>
>> + exit 1
>> + ;;
>> +esac
>> diff --git a/meta/recipes-connectivity/kea/files/kea-dhcp4-server
>> b/meta/recipes-connectivity/kea/files/kea-dhcp4-server
>> new file mode 100644
>> index 00000000000..59128e530d6
>> --- /dev/null
>> +++ b/meta/recipes-connectivity/kea/files/kea-dhcp4-server
>> @@ -0,0 +1,46 @@
>> +#!/bin/sh
>> +### BEGIN INIT INFO
>> +# Provides: kea-dhcp4-server
>> +# Required-Start: $local_fs $network $remote_fs $syslog
>> +# Required-Stop: $local_fs $network $remote_fs $syslog
>> +# Default-Start: 2 3 4 5
>> +# Default-Stop: 0 1 6
>> +# Short-Description: ISC KEA DHCP IPv6 Server ### END INIT INFO
>> +
>> +PATH=/sbin:/usr/sbin:/bin:/usr/bin
>> +DESC="kea-dhcp4-server"
>> +NAME=kea-dhcp4
>> +DAEMON=/usr/sbin/keactrl
>> +DAEMON_ARGS=" -s dhcp4"
>> +
>> +set -e
>> +
>> +# Exit if the package is not installed
>> +[ -x "$DAEMON" ] || exit 0
>> +
>> +# Source function library.
>> +. /etc/init.d/functions
>> +
>> +case "$1" in
>> + start)
>> + echo -n "Starting $DESC: "
>> + start-stop-daemon -S -b -n $NAME -x $DAEMON -- start $DAEMON_ARGS
>> + echo "done."
>> + ;;
>> + stop)
>> + echo -n "Stopping $DESC: "
>> + kpid=`pidof $NAME`
>> + kill $kpid
>> + echo "done."
>> + ;;
>> + restart|force-reload)
>> + #
>> + $0 stop
>> + $0 start
>> + ;;
>> + *)
>> + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
>> + exit 1
>> + ;;
>> +esac
>> diff --git a/meta/recipes-connectivity/kea/files/kea-dhcp6-server
>> b/meta/recipes-connectivity/kea/files/kea-dhcp6-server
>> new file mode 100644
>> index 00000000000..e0119d6eb2e
>> --- /dev/null
>> +++ b/meta/recipes-connectivity/kea/files/kea-dhcp6-server
>> @@ -0,0 +1,47 @@
>> +#!/bin/sh
>> +### BEGIN INIT INFO
>> +# Provides: kea-dhcp6-server
>> +# Required-Start: $local_fs $network $remote_fs $syslog
>> +# Required-Stop: $local_fs $network $remote_fs $syslog
>> +# Default-Start: 2 3 4 5
>> +# Default-Stop: 0 1 6
>> +# Short-Description: ISC KEA DHCP IPv6 Server ### END INIT INFO
>> +
>> +# PATH should only include /usr/* if it runs after the mountnfs.sh
>> +script PATH=/sbin:/usr/sbin:/bin:/usr/bin
>> +DESC="kea-dhcp6-server"
>> +NAME=kea-dhcp6
>> +DAEMON=/usr/sbin/keactrl
>> +DAEMON_ARGS=" -s dhcp6"
>> +
>> +set -e
>> +
>> +# Exit if the package is not installed
>> +[ -x "$DAEMON" ] || exit 0
>> +
>> +# Source function library.
>> +. /etc/init.d/functions
>> +
>> +case "$1" in
>> + start)
>> + echo -n "Starting $DESC: "
>> + start-stop-daemon -S -b -n $NAME -x $DAEMON -- start $DAEMON_ARGS
>> + echo "done."
>> + ;;
>> + stop)
>> + echo -n "Stopping $DESC: "
>> + kpid=`pidof $NAME`
>> + kill $kpid
>> + echo "done."
>> + ;;
>> + restart|force-reload)
>> + #
>> + $0 stop
>> + $0 start
>> + ;;
>> + *)
>> + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
>> + exit 1
>> + ;;
>> +esac
>> diff --git a/meta/recipes-connectivity/kea/kea_1.7.10.bb b/meta/recipes-
>> connectivity/kea/kea_1.7.10.bb
>> index 2ea4b12758e..15193aeda38 100644
>> --- a/meta/recipes-connectivity/kea/kea_1.7.10.bb
>> +++ b/meta/recipes-connectivity/kea/kea_1.7.10.bb
>> @@ -13,11 +13,17 @@ SRC_URI = "\
>> file://kea-dhcp4.service \
>> file://kea-dhcp6.service \
>> file://kea-dhcp-ddns.service \
>> + file://kea-dhcp4-server \
>> + file://kea-dhcp6-server \
>> + file://kea-dhcp-ddns-server \
>> file://fix-multilib-conflict.patch \ "
>> SRC_URI[sha256sum] =
>> "4e121f0e58b175a827581c69cb1d60778647049fa47f142940dddc9ce58f3c82"
>>
>> -inherit autotools systemd
>> +inherit autotools systemd update-rc.d
>> +
>> +INITSCRIPT_NAME = "kea-dhcp4-server"
>> +INITSCRIPT_PARAMS = "defaults 30"
>>
>> SYSTEMD_SERVICE_${PN} = "kea-dhcp4.service kea-dhcp6.service kea-dhcp-
>> ddns.service"
>> SYSTEMD_AUTO_ENABLE = "disable"
>> @@ -44,8 +50,11 @@ do_configure_prepend() { }
>>
>> do_install_append() {
>> + install -d ${D}${sysconfdir}/init.d
>> install -d ${D}${systemd_system_unitdir}
>> +
>> install -m 0644 ${WORKDIR}/kea-dhcp*service
>> ${D}${systemd_system_unitdir}
>> + install -m 0755 ${WORKDIR}/kea-*-server ${D}${sysconfdir}/init.d
>> sed -i -e 's,@SBINDIR@,${sbindir},g' -e 's,@BASE_BINDIR@,${base_bindir},g' \
>> -e 's,@LOCALSTATEDIR@,${localstatedir},g' -e
>> 's,@SYSCONFDIR@,${sysconfdir},g' \
>> ${D}${systemd_system_unitdir}/kea-dhcp*service ${D}${sbindir}/keactrl
>> @@ -55,6 +64,8 @@ do_install_append() {
>> rm -rf "${D}${localstatedir}"
>> }
>>
>> +CONFFILES_${PN} = "${sysconfdir}/kea/keactrl.conf"
>> +
>> FILES_${PN}-staticdev += "${libdir}/kea/hooks/*.a ${libdir}/hooks/*.a"
>> FILES_${PN} += "${libdir}/hooks/*.so"
>>
>> --
>> 2.17.1
next prev parent reply other threads:[~2020-10-14 14:05 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-14 5:08 [PATCH] kea: add init scripts akuster
2020-10-14 7:43 ` [OE-core] " Diego Sueiro
2020-10-14 14:05 ` akuster [this message]
2020-10-14 20:58 ` Khem Raj
2020-10-15 3:06 ` akuster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7e320cf5-695e-a575-fd33-d4ee51875295@gmail.com \
--to=akuster808@gmail.com \
--cc=Diego.Sueiro@arm.com \
--cc=Kamil.Dziezyk@arm.com \
--cc=Ross.Burton@arm.com \
--cc=nd@arm.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox