Re: At wits end... need to execute a script prior to anything getting killed/changed on reboot/shutdown

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If you want to run it early in the shutdown process, then keep DefaultDependencies=yes, in which case it will run before the base dependencies start to get stopped.

If you need some other resources to be up, for instance network, then add After=network.target, etc.

Remember that when shutting down, the dependencies are stopped in the opposite order as they're started up, so if you need your script to run *before* something else is stopped, then you need an After= dependency.

You shouldn't add any ordering regarding reboot.target and shutdown.target. Just enable your service (so that it looks up during normal system usage), when the system goes down it will be stopped, and then depending on its After= dependencies it will block those other services from being stopped until you're done.

In recent systemd versions (I think starting from v238?) you can omit the ExecStart=/bin/true line, an unit without that line starts to be valid in one of those versions... Though keeping it around is fine and will work with older versions too.

I hope this helps!

Cheers,
Filipe


On Wed, Jan 16, 2019 at 10:47 AM Christopher Cox <ccox@xxxxxxxxxxxxxx> wrote:
I need to be able to execute a script before anything gets shutdown.  That is,
when somebody does a "reboot", "shutdown" or "poweroff", I need this script to
run first, and for it to finish before everything gets whacked.

I know the following isn't "right"... I've tried so many different things. 
Google hasn't helped only giving me many "right" solutions that didn't work. In
this current edition, basically I get a partial capture of processes that are
running (that is some were killed directly or indirectly).. I need them all.  My
script needs to see the state of operation before reboot/shutdown/poweroff do
anything else.  My "save" saves some information about running processes (some
not necessarily under systemd control).

[Unit]
Description=my-service save status
DefaultDependencies=no
Before=reboot.target shutdown.target
Conflicts=reboot.target shutdown.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/true
ExecStop=/usr/local/bin/my-service.sh save
StandardOutput=journal

[Install]
WantedBy=multi-user.target

_______________________________________________
systemd-devel mailing list
systemd-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/systemd-devel
_______________________________________________
systemd-devel mailing list
systemd-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/systemd-devel

[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux