[CentOS] Running script before reboot or shutdown

Wed Jan 6 23:01:00 UTC 2021
centos2 at foxengines.net <centos2 at foxengines.net>

Hi Carlos,

Don't know if you ever found a solution to the problem you described below but I think I came across the concept for this that might work. I'm more of a systemd dilettante than a systemd  expert but I found confirmation that this approach isn't totally hare-brained. While trying to figure out your problem, I had the idea to try to create a target, instead of a service, that runs on top of multi-user or whatever your target is, then to attach the service you want to shutdown, to the shutdown sequence of that target. If your target shuts down before the target it runs on top of, then it should take your service down first. I didn't know if the shutdown sequence would be in the correct series but according to a posting I found on on "askubuntu.com" , it should work correctly. I've tried this, and I didn't see exactly the results I wanted but I'm not confident I was doing things correctly to observe it. I've included the link to what I found on askubuntu:

https://askubuntu.com/questions/1024197/how-to-have-a-process-come-first-during-shutdown-sequence

I'm interested if you were able to find a solution, particularly if it's a different approach than what I found.

On Tue, Dec 22, 2020, at 11:08, centos2 at foxengines.net wrote:
> 
> 
> On Tue, Dec 22, 2020, at 10:50, Carlos Lopez wrote:
> > Thanks centos2 .... but regarding your example, I cannot see where you configure that this services needs to be stopped before anyone else....
> 
> I conveniently overlooked that requirement. I'll have to get back to 
> you on that...
> 
> 
> > On 22/12/20, 15:22, "CentOS on behalf of centos2 at foxengines.net" <centos-bounces at centos.org on behalf of centos2 at foxengines.net> wrote:
> > 
> >     Hi,
> > 
> >     On Tue, Dec 22, 2020, at 06:51, Carlos Lopez wrote:
> >     > I am trying to configure a script as a systemd service to run first when a shutdown or reboot is called. This script execute some scp commands to copy some files to other machines. My actual defined systemd’s file is:
> >     > 
> >     > [Unit]
> >     > Description=Remote copy some files before reboot/shutdown
> >     > Before=poweroff.target halt.target shutdown.target reboot.target
> >     > DefaultDependencies=no
> >     > 
> >     > [Service]
> >     > Type=simple
> >     > ExecStart=/bin/true
> >     > ExecStop=/usr/local/bin/remote_copy
> >     > RemainAfterExit=yes
> >     > 
> >     > [Install]
> >     > WantedBy=multi-user.target
> >     > 
> >     > But it doesn’t work. “remote_copy” is working when it is executed from root shell. I am using CentOS-8 fully patched release.
> >     > 
> >     > Any idea what am I doing wrong?
> > 
> >     I don't have a CentOS 8 machine to test on but on a CentOS 7.9, this works for me:
> > 
> >     /etc/systemd/system/shutdown-test.service
> > 
> >     ------------------------------------------------------
> >     [Unit]
> >     Description=Remote copy some files before reboot/shutdown
> > 
> >     [Service]
> >     Type=oneshot
> >     ExecStart=/bin/true
> >     ExecStop=/usr/local/bin/remote_copy
> >     RemainAfterExit=true
> > 
> >     [Install]
> >     WantedBy=multi-user.target
> >     ------------------------------------------------------
> > 
> >     the mode and contents of remote_copy:
> > 
> >     -rwxr-xr-x 1 root root 44 Dec 22 08:23 /usr/local/bin/remote_copy
> > 
> >     ------------------------------------------------------
> >     #!/bin/bash
> > 
> >     date >> /tmp/remote_copy_result
> >     ------------------------------------------------------
> > 
> >     After enabling the service and rebooting, I get a file in /tmp/remote_copy_result that contains the date.
> > 
> >     My success is attributable not to me but to this post:
> >     https://unix.stackexchange.com/questions/39226/how-to-run-a-script-with-systemd-right-before-shutdown
> >     Your unit file seems similar but when I used it, it didn't work on my CentOS 7.9 system either.
> >     _______________________________________________
> >     CentOS mailing list
> >     CentOS at centos.org
> >     https://lists.centos.org/mailman/listinfo/centos
> > 
> > _______________________________________________
> > CentOS mailing list
> > CentOS at centos.org
> > https://lists.centos.org/mailman/listinfo/centos
> > 
>