正确启用 systemd 服务 - fail2ban

正确启用 systemd 服务 - fail2ban

说实话,我对使用 systemd 一点儿也不满意。我就是无法理解它。

我使用的 fail2ban 版本在 Ubuntu 16.04 中表现异常。我将其删除:

apt remove fail2ban

并安装最后一个:

wget https://github.com/fail2ban/fail2ban/archive/0.11.zip
unzip 0.11.zip
cd fail2ban-0.11
python setup.py install

在安装结束时,它说我必须启用其服务。

我以为

systemctl enable fail2ban.service

已经足够了,但似乎服务被“屏蔽”了。我使用了以下链接:https://askubuntu.com/questions/710420/why-are-some-systemd-services-in-the-masked-state 了解什么是 masked。

我试图揭开它的面纱: systemctl unmask fail2ban.service

并启用它:

systemctl enable fail2ban.service

下面是经典的命令:

service fail2ban status | start | stop

工作中。

问题是我读到我应该也能够从 systemctl 获取服务的信息:

systemctl fail2ban status
Unknown operation fail2ban.

因此我开始用谷歌搜索结果...我找到了这个命令(并且我添加了|sort以获得更好的输出):

systemctl list-units | sort

这表明:

fail2ban.service  loaded active exited  LSB: Start/stop fail2ban

我不知道“退出”是什么意思,所以我搜索了: https://unix.stackexchange.com/questions/241970/what-does-status-active-exited-mean-for-a-custom-service

状态活跃(退出)意味着 systemd 已成功运行命令,但它不知道有一个守护进程需要监视。

我的请求

我所希望做的就是能够启动和停止 fail2ban 服务,并控制它是否正常工作。我对 systemd 几乎一无所知,因为我总是跳过它(这就是为什么我在使用 CentOS 5 和更早版本多年后转向 Ubuntu 14 的原因),但现在看来我被迫这样做了。

有人能告诉我如何以正确的方式将 fail2ban 服务“添加”到 systemctl 吗?

答案1

肌肉记忆是很重要的。systemctl 实用程序的设计者重新排列了命令行,现在(广泛地)

systemctl <action> <service>

而不是你的肌肉记忆习惯的

systemctl <service> <action>

因此,启动停止、重启、启用、状态等变成

systemctl start fail2ban
systemctl stop fail2ban
systemctl restart fail2ban
systemctl enable fail2ban
systemctl status fail2ban

相关内容