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