web-dev-qa-db-ja.com

Centos7:systemdでxinetdサービスを開始する

Centos6からのxinetdサービスがあり、Centos7に移植したい、つまりsystemdサービスを作成したい

# cat /etc/xinetd.d/br_rsh 
# default: on
# description: The rshd server is the server for the rcmd(3) routine and, \
#   consequently, for the rsh(1) program.  The server provides \
#   remote execution facilities with authentication based on \
#   privileged port numbers from trusted hosts.
service brshell
{
    port            = 591
    socket_type     = stream
    wait            = no
    user            = root
    log_on_success      += USERID
    log_on_failure      += USERID
    server          = /usr/sbin/in.br_rshd
    disable         = no
}

私が正しく理解した場合、上のファイルを2つの部分に分解する必要があります。1つはbrshell.socket用で、もう1つはbrshell.service用です。次に、systemctl enable brshell.socket(brshell.serviceについてはどうですか?)

これらのファイルはどのように見え、これらのファイルはどこに配置されますか?

ありがとうございました

2
ealeon

rshdの実行に伴うすべてのリスクについてはすでにご存じだと思いますので、私の講演の「警告」セクションはスキップします。 :-)

ディストリビューションに実行中のプログラムが含まれている場合は、移行する正しいsystemdファイルがすでにある可能性が高いです(/usr/lib/systemd/systemは、ディストリビューションが提供するユニットファイルがCentOS IIRCにある場所です。これはディストリビューションです。 -固有;たとえば、私はGentooを使用して、それらが/lib/systemd/systemにあるようにしています)。

ユニットファイルを作成する必要がある場合、xinetdサービスを移行するのは非常に簡単です。あなたはソケットとサービスファイルの両方が必要であるという点で正しいです。デフォルトでは、両方のベース名は同じです。ただし、これは要件ではなく、単純化したものです。特定のケースでは、以下を/etc/systemd/systemに入力します(これは、自分で作成したユニットファイルを配置する場所です):

brshell.socket

[Unit]
Description=rsh Server Socket

[Socket]
ListenStream=591
Accept=yes

[Install]
WantedBy=sockets.target

brshell.service

[Unit]
Description=rsh Server Daemon
After=network.target

[Service]
ExecStart=/usr/sbin/in.br_rshd

[Install]
WantedBy=multi-user.target

基本的にはそれだけです!次に必要なのは、systemd enable brshell.socket(起動時に自動的に開始する)とsystemd start brshell.socketを実行することだけです。

2
ErikF