centos2 at foxengines.net
2020-Dec-22 14:22 UTC
[CentOS] Running script before reboot or shutdown
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.
Thanks centos2 .... but regarding your example, I cannot see where you configure
that this services needs to be stopped before anyone else....
?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