Site Map - skip to main content - dyslexic font - mobile - text - print

Hacker Public Radio

Your ideas, projects, opinions - podcasted.

New episodes Monday through Friday.

The passing of FiftyOneFifty

It is with deep sadness we announce that another of our hosts and friends Donald Grier, known to us as FiftyOneFifty, has passed away.

FiftyOneFifty's frat brother Randy Hall has written an lovely piece. The team at Linuxlugcast are preparing our own tribute if you want to contribute an audio file you can email Honkeymagoo or join the show.

Our thoughts go out to his friends and family at this difficult time.

hpr2134 :: Shutdown Sequence Systemd

Klaatu demonstrates how to sequence systemd shutdown processes

<< First, < Previous, Latest >>

Hosted by klaatu on 2016-10-06 is flagged as Explicit and is released under a CC-BY-SA license.
Tags: systemd,service.
Listen in ogg, spx, or mp3 format. | Comments (2)

Set up a service to trigger FIRST (this would be the shutdown service):

# cat /lib/systemd/system/fakehalt.service

Description=Fake-Halt Service

ExecStart=/usr/local/bin/ #this will fail until fakevm succeeds

And then set up the one that you want to run and complete BEFORE shutdown is permitted:

# cat /lib/systemd/system/fakevm.service
Description=Fake Service


Create a script to represent the VM shutdown (or any process that you cannot anticipate the duration of)

# cat /usr/local/bin/

sleep 21
if [ X"$test" = "X1" ]; then
    echo "vm has shut down" > /tmp/fake.test
    exit 0
    exit 1

And a script to pass for a shutdown signal:

# cat /usr/local/bin/

sleep 3
cat /tmp/vmfake.test > /tmp/haltfake.test

Start the service you want to happen AFTER the first one:

# systemctl start fakehalt

What "should" happen is that fakehalt will fail to find a file called /tmp/fake.test to cat from, and so everything should go horribly wrong.

What actually happens is that systemd places fakehalt service on hold until it gets an exit 0 signal from the fake service. So if you wait 21 seconds and cat /tmp/fakehalt.test, you see that the cat from a file that did not exist when fakehalt was started - actually succeeded.


Subscribe to the comments RSS feed.

Comment #1 posted on 2016-12-18T20:43:23Z by CPrompt^

Great explanation!

Great explanation of how systemd works with two services like this.

I started working with systemd services and went back to this show to get some info. Good stuff!

Just wanted to point out that in the show notes, there is a little bit of a typo.

Under the "fakehalt.service" you have listed in the Unit section :

However, right below that you call the service fake.service

You say it correct in the audio but the show notes have the typo.


Comment #2 posted on 2018-10-07T16:59:58Z by david pellecchia

systemd service

Top Man!
Many thanks for posting your information regarding systemd services. I've been pulling my hair out trying to work out why my pre-shutdown script would not fire. Then I found your post.
A very big thank you to you.

<< First, < Previous, Latest >>

Leave Comment

Note to Verbose Commenters
If you can't fit everything you want to say in the comment below then you really should record a response show instead.

Note to Spammers
All comments are moderated. All links are checked by humans. We strip out all html. Feel free to record a show about yourself, or your industry, or any other topic we may find interesting. We also check shows for spam :).

Provide feedback
Your Name/Handle:
Anti Spam Question: What does the P in HPR stand for ?
Are you a spammer →
Who hosted this show →
What does HPR mean to you ?