我有一个来自 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
}
如果我理解正确,我需要将上述文件分解为两部分:一个用于 brshell.socket,另一个用于 brshell.service。然后,我需要执行systemctl enable brshell.socket
(brshell.service呢?)
这些文件会是什么样子以及这些文件会放在哪里?
谢谢
答案1
我假设您已经了解跑步涉及的所有风险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
.