'SystemD service script will work on Systemctl start {service script} but not on reboot

I am trying to right a systemd service script to perform a task on reboot. Below is the script and it works when I run 'systemctl start script.service but not when I reboot the system.

[Unit]
Description=put cloudify in maintenance mode on shutdown
DefaultDependencies=no
Before=reboot.target

[Service]
Type=oneshot
ExecStart=/bin/cfy maintenance-mode activate
TimeoutStartSec=0

[Install]
WantedBy=reboot.target

I have performed: systemctl daemon-reload and systemctl enable script.service

What that command will do is put an application into maintenance mode.

all services on the vm that are needed for this are also enabled.

I am not sure what I am doing wrong and any help would be appreciated.



Solution 1:[1]

To run the service just before your system reboots. You need to add this dependency to your service file.

[Unit]
Description=put cloudify in maintenance mode on shutdown
DefaultDependencies=no
After=final.target

[Service]
Type=oneshot
ExecStart=/bin/cfy maintenance-mode activate
TimeoutStartSec=0

[Install]
WantedBy=final.target

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Brendan