diff --git a/community/connman/APKBUILD b/community/connman/APKBUILD
index f97c655ee20a822535dc0f76b5997e97aa5d93f0..4b5b9c8a207e727dc31f908f1d4e0e9afb2754fb 100644
--- a/community/connman/APKBUILD
+++ b/community/connman/APKBUILD
@@ -23,7 +23,8 @@ subpackages="
 	"
 source="https://www.kernel.org/pub/linux/network/connman/connman-$pkgver.tar.xz
 	libresolv.patch
-	connman.initd
+	$pkgname.initd
+	$pkgname.confd
 	"
 
 # secfixes:
@@ -78,6 +79,8 @@ package() {
 
 	make DESTDIR="$pkgdir" install
 	install -Dm644 src/main.conf "$pkgdir"/etc/$pkgname/main.conf
+
+	install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
 	install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
 }
 
@@ -135,5 +138,6 @@ wireguard() {
 sha512sums="
 33df90814b7499aeafcd51fca4f8ffbc07efacfa29dda46d3b9bcd3ff26264dc53c3991e7e53a8563ca403015c345e59c7ad29427c38ee3d88dd282479db7a0f  connman-1.40.tar.xz
 122b48fc9e25354e25ba3a3e0864bdd84da84457fed94aeea726bcb189b2f05f2cc361ae15f44af5c49bcee572e91e4c0488ef3b0bc79d20f6efe15853fb6b3a  libresolv.patch
-b0676714b3952f38d50f3707c3ec72269902dd07f3cefc412c2720d91d02c9537f2823eb4ed5359650eaa64b9132cddba3abc15fd68542ff0870de653e023ed8  connman.initd
+17c21c1c3e138790610a30ff397272e8f10b348c630e11f340fc7e97bdb871be00abc2955e11b9dad2c4be44cb6fdbf26c6c73aa18c1a2109f0668b14278593f  connman.initd
+4d266e0cb30af7aec5359a5456b12c9358c266ce0a7afdff247da7423f91b99748a15e44facec51eaab0f5a193b9c7542d9a3988c85f1bf5027a742aea995326  connman.confd
 "
diff --git a/community/connman/connman.confd b/community/connman/connman.confd
new file mode 100644
index 0000000000000000000000000000000000000000..d46fe907fdb2ad240b7a51e697793b66f7191e10
--- /dev/null
+++ b/community/connman/connman.confd
@@ -0,0 +1,10 @@
+# Configuration file for /etc/init.d/connman
+
+# Path to ConnMan's configuration file.
+#cfgfile=/etc/connman/main.conf
+
+# Additional arguments to pass to connmand.
+#command_args=
+
+# Uncomment to use process supervisor.
+#supervisor="supervise-daemon"
diff --git a/community/connman/connman.initd b/community/connman/connman.initd
index 610aabf4ce1300b94eede7f8503c118a7fe9a598..3db84280a770114344aeedbd7d94ea3afdf5da9d 100644
--- a/community/connman/connman.initd
+++ b/community/connman/connman.initd
@@ -1,14 +1,15 @@
 #!/sbin/openrc-run
-supervisor=supervise-daemon
 
-name="Network Management Daemon"
+name="ConnMan"
 description="Daemon for managing internet connections"
 
 : ${cfgfile:=/etc/connman/main.conf}
 
 command=/usr/sbin/connmand
-command_args="$command_args -c $cfgfile"
-command_args_foreground="--nodaemon"
+command_args="$command_args -c $cfgfile --nodaemon"
+command_background="yes"
+pidfile="/run/$RC_SVCNAME.pid"
+required_files="$cfgfile"
 
 depend() {
 	need dbus