在一台机器上,我准备了一个firewall.service
在运行 Debian 9.5 的机器上运行良好的 systemd 服务。
现在我正在设置另一台机器,也运行 Debian 9.5,使用完全相同的脚本,但在启动时拒绝运行,我似乎找不到任何关于原因的迹象。
启动后,这是一些输出,仅向我表明 systemd 从未尝试过首先启动该服务:
[root@bigbrother ~]# journalctl -u firewall
-- No entries --
[root@bigbrother ~]# systemctl status firewall
● firewall.service - Firewall setup via /etc/iptables.rules
Loaded: loaded (/etc/systemd/system/firewall.service; enabled; vendor preset: enabled)
Active: inactive (dead)
防火墙服务在/etc/systemd/system/firewall.service
两台机器上,如下所示:
[Unit]
Description=Firewall setup via /etc/iptables.rules
After=network.target
[Service]
Type=oneshot
ExecStart=/sbin/iptables-restore /etc/iptables.rules
[Install]
WantedBy=network-online.target
如您所见,它只是运行一个iptables-restore command
,仅此而已。我以前曾经运行/etc/rc.local
过这个,但我想一个人必须跟上时尚并使用systemd
这些东西(这很好,当它工作时)。
该服务确实已启用:
[root@bigbrother ~]# systemctl disable firewall
Removed /etc/systemd/system/network-online.target.wants/firewall.service.
[root@bigbrother ~]# systemctl enable firewall
Created symlink /etc/systemd/system/network-online.target.wants/firewall.service → /etc/systemd/system/firewall.service.
手动运行时效果很好:
[root@bigbrother ~]# systemctl start firewall
[root@bigbrother ~]# systemctl status firewall
● firewall.service - Firewall setup via /etc/iptables.rules
Loaded: loaded (/etc/systemd/system/firewall.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Sep 09 17:10:52 bigbrother systemd[1]: Starting Firewall setup via /etc/iptables.rules...
Sep 09 17:10:53 bigbrother systemd[1]: Started Firewall setup via /etc/iptables.rules.
我错过了什么?
我在这里查看了一些类似的问题,但给我最大希望的问题实际上是一个错字,所以我现在完全迷失了。这是我在不同服务器上运行的同一版本的 Debian,所以我很难相信这与服务的顺序有关。即便如此,我很乐意就此提出建议。