On 13/02/2022 15:46, Mantas Mikulėnas wrote:
On Sun, Feb 13, 2022 at 1:09 PM Wols Lists <antlists@xxxxxxxxxxxxxxx
<mailto:antlists@xxxxxxxxxxxxxxx>> wrote:
On 13/02/2022 09:54, Mantas Mikulėnas wrote:
> On Sun, Feb 13, 2022 at 2:03 AM Wol <antlists@xxxxxxxxxxxxxxx
<mailto:antlists@xxxxxxxxxxxxxxx>
> <mailto:antlists@xxxxxxxxxxxxxxx
<mailto:antlists@xxxxxxxxxxxxxxx>>> wrote:
>
> More fun getting things to work ... :-)
>
> So I've got a service, scarletdme.service, which fires up my
db backend
> for running interactively. However, I also need a socket
service for
> remote connections.
>
> I've got the xinetd files, but if I'm running systemd, I want
to use
> systemd :-)
>
> So I've written scarletdme.socket, and scarletdme@.service,
but the
> more
> I read, the more I don't understand ...
>
> Do I enable scarletdme.socket the same as anything else eg
"systemctl
> enable scarletdme.socket"? How does it know the difference
between
> scarletdme.service and scarletdme@.service? I get the
impression I need
> to put something in the .socket file to make it use
scarletdme@ rather
> than scarletdme?
>
>
> If it's a 'nowait' socket (which is "[Socket] Accept=yes" in systemd
> terms), then it will use the templated @.service, starting a new
> instance for each "accepted" socket (i.e. instance per
connection). See
> oidentd.socket for comparison.
>
> Otherwise (by default) it uses the non-templated service and
directly
> gives it the "listening" socket, letting the service itself
handle accept().
>
??? Sorry, that's double dutch to me.
Are you telling me that just copying the files into /lib/systemd/system
will enable them? That seems weird to me because it doesn't do it for
normal services afaik. (Or shouldn't I be copying it direct into
/lib/systemd/system? I just don't know ...)
No, I was not talking about any of that. You asked how systemd knows the
difference between dme.service and dme@.service.
Let's rewind a moment. That was my SECOND question. That's one of the
reasons I got confused, because my FIRST question WAS "how do I start
scarletdme.socket?"
So the answer to that is nice and simple,
"systemctl enable/start scarletdme.socket"
Now what I don't want is for scarletdme.socket to invoke
scarletdme.service. How do I tell it that it is supposed to invoke
scarletdme@.service? Or have I messed up naming conventions? Or what the
hell is the proper way to do it?
Cheers,
Wol