Gentoo Archives: gentoo-dev

From: "Vadim A. Misbakh-Soloviov" <gentoo@×××.name>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] [openrc] [systemd] make `service` common for both OpenRC and SystemD (like Debian/Ubuntu/whatever did)
Date: Sat, 16 Sep 2017 19:56:16
Message-Id: 3005176.dSsCWkhPpk@note
Hi there!

Every time I switch from mastering service on my work (Ubuntu-powered) to my 
own server farm (Gentoo powered) I'm going a bit frustrated: Ubuntu (with all 
my hate to many other things in it) has nice user-friendly way of managing 
services: you can freely call any of `service <servicename> action` irrelevant 
to which init-system is currently in use. Will it be systemd, or (whatever 
there is alternative there). `service` wrapper will detect it anyway and will 
do the proper things (forward it to either systemd or another service 
manager).

I'd like to suggest to remove `service` widget from openrc and make it the 
part of (which package? baselayout?)? Here is a pseudocode of how I see it:

```
servicename=${1}
action=${2}

if in_systemd; then
	systemctl "${action}" "${servicename}"
else
	rc-service "${servicename}" "${action}"
fi
```

Well, actually, there may be some more logic (for example, instance units 
(`unit@instance` in `systemd` vs `unit.instance` in openrc), "enable" action 
(forward it to `rc-update add` for `openrc`, probably) and maybe some more.
But anyway, the conception is something like that.


What do you think about that?


P.S. actually, it also would be nice to add "generators" thing to it too, to 
make it possible to manage services that have no systemd's units under SystemD 
and services that have only units under OpenRC (well, that one looks much 
harder than first variant, but, again, looks like deb/ubuntu guys did that 
work already and we can try to use their work as cheatsheet)

Replies