[systemd-devel] converting a xinetd-service to systemd

Mirco Tischler mt-ml at gmx.de
Wed Sep 14 14:36:38 PDT 2011


2011/9/14 Stefan G. Weichinger <lists at xunil.at>:
> Am 14.09.2011 22:58, schrieb Mirco Tischler:
>
>> Pretty much identical to what I wrote. You can find information about
>> User and Group in systemd.exec.
>
> Ah, yes, did now.
>
>> Minor detail: you don't want the Install section in the service file.
>> systemd wouldn't know what to fill in behind the @.
>
> removed that section now, thanks.
>
>> Can you get more information why the service fails? Maybe the amanda
>> log or systemctl status give you a clue...
>
> I get "selfcheck request failed: recv error: Connection reset by peer"
> on the server which somehow points at something like:
>
> server tries to use bsdtcp-authentication and client (= the machine with
> systemd listening) doesn't answer correctly.
>
> My working xinetd-file is:
>
> service amanda
> {
>        socket_type             = stream
>        protocol                = tcp
>        wait                    = no
>        user                    = amanda
>        group                   = amanda
>        groups                  = yes
>        server                  = /usr/libexec/amanda/amandad
>        server_args             = -auth=bsdtcp amdump
>        disable                 = no
> }
I would write the unit files exactly as you did.
> The amanda.socket fails after about two times trying to contact it from
> the server.
>
> systemd[1]: amanda.socket failed to queue socket startup job: File exists
> systemd[1]: Unit amanda.socket entered failed state.
>
> Maybe the "Type" of the service is wrong?
Easy to check: if you execute the command in a shell does amandad
background itself? If yes type should be forking, else Type=simple
(the default) is fine.
What you can try is to remove the "-" in front of the ExecStart
command. systemd will then no longer ignore an exit status != 0 and
will mark the services as failed. Maybe you can get more info about
those services (exit status, listed PIDs,...)

One more thing to check: if you use a very recent version of systemd
(afair v35 and up)  try adding StandardInput=socket and
StandardOutput=socket to the service file.
> Stefan
>
Mirco


More information about the systemd-devel mailing list