[systemd-devel] Service activation

Wols Lists antlists at youngman.org.uk
Sun Feb 13 11:09:11 UTC 2022


On 13/02/2022 09:54, Mantas Mikulėnas wrote:
> On Sun, Feb 13, 2022 at 2:03 AM Wol <antlists at youngman.org.uk 
> <mailto:antlists at youngman.org.uk>> 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 at .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 at .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 ...)

So I do systemctl status and get this - I'm surprised I got anything!

thewolery /home/anthony/gitstuff # systemctl status scarletdme.socket
○ scarletdme.socket - ScarletDME Per-Connection Server
      Loaded: loaded (/lib/systemd/system/scarletdme.socket; disabled; 
vendor preset: disabled)
      Active: inactive (dead)
      Listen: [::]:4242 (Stream)
    Accepted: 0; Connected: 0;
thewolery /home/anthony/gitstuff #

Does that mean when I connect it will fire off the scarletdme at .service? 
Or does all the disabled stuff means systemd has found it but is 
ignoring it?

Sorry, I know all this is supposed to be "simple", and when I've done it 
once or twice it will be, but at the moment I just don't have a clue.
> 
> 
>     And once I've got all that sorted, I'm betting I'm going to have grief
>     getting it to work properly, so while it's not much to do with systemd,
>     is there any way I can get systemd to log all traffic back and forth so
>     I can debug it?
> 
> 
> No, the traffic doesn't even go through systemd in the first place.
> 
Cheers,
Thanks


More information about the systemd-devel mailing list