Você pode obter o resultado desejado usando uma unidade do systemd conforme abaixo:
[Unit]
Description=Service to run on shutdown before any other services
After=default.target
[Service]
Type=oneshot
ExecStart=/bin/true
ExecStop=/opt/demo.sh
RemainAfterExit=yes
TimeoutStopSec=0
[Install]
WantedBy=default.target
Os serviços do systemd stop são baseados em sua dependência em ordem reversa. Portanto, o serviço acima começa /bin/true depois que o sistema atingiu default.target e seu script /opt/demo.sh em parar / desligar. Com base em sua exigência, você desejaria ajustar TimeoutStopSec , atualmente está definido para nunca tempo limite (em vez de 90 segundos padrão)