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

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@.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

Reply via email to