On two different servers, different services will not start, but if they are restarted, start successfully

Solution 1:

You could try listing dependencies (using ufw as an example):

$ systemctl list-dependencies ufw
ufw.service
● └─system.slice
$

Or viewing the Unit File information (again for ufw):

$ systemctl cat ufw
# /lib/systemd/system/ufw.service
[Unit]
Description=Uncomplicated firewall
Documentation=man:ufw(8)
DefaultDependencies=no
Before=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/lib/ufw/ufw-init start quiet
ExecStop=/lib/ufw/ufw-init stop

[Install]
WantedBy=multi-user.target
$

If you really need the network to be up you can add to the Unit File:

After=network-online.target
Wants=network-online.target

You could also review the Journal to see if the services are spitting out any errors:

sudo journalctl -u ufw