老实说,我对使用 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.servic
e
并启用它:
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 吗?
肌肉记忆是一回事。systemctl 实用程序的设计者重新排序了命令行,使其现在(大致)
而不是你的肌肉记忆习惯
因此,启动停止、重新启动、启用、状态等变为