4

I would like to execute this shell script at reboot and shut down:

#!/bin/sh
touch /test

Its permissions are

-rwxr-xr-x 1 root root 22 Feb 24 09:34 /etc/init.d/te1

And it has this links

/etc/rc0.d/K01te1 -> ../init.d/te1
/etc/rc6.d/K01te1 -> ../init.d/te1

It is working at start up if I have a this link

/etc/rc5.d/S01te1 -> ../init.d/te1

But I need it running at shut down.

How can I do this on Debian 8 and 9 testing?

The suggestion touch /var/lock/subsys/te1 didn't work.

Rui F Ribeiro
  • 56,709
  • 26
  • 150
  • 232

3 Answers3

7

I got the impression that others seem to have problems in getting this running, too. Seems like starting with Debian 8.0 (Jessie) systemd breaks compatibility to System V init.

So here it was suggested to create a systemd service instead. The solution is used here and looks like this:

[Unit]
Description=The te1 script

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/usr/local/bin/te1

[Install]
WantedBy=multi-user.target

The systemd service needs to be saved in /lib/systemd/system/te1.service and installed with sudo systemctl enable te1.

  • On Raspbian, this did not work until I ran sudo systemctl daemon-reload. I am not sure at what time the daemon-reload has to be run, whether it is after installing the service config, or after enabling the service a first time, or whether the service has to be enabled after daemon-reload, but I did get it working. – Steven Lu Aug 06 '19 at 01:53
0

seems you could find it with a bit of search but:
put your script at /etc/rc6.d grant necessary permissions:

sudo chmod +x K99_script

and some points:
no .sh extension
K_99 is needed
scripts here are executed in alphabetical order
Read here

FargolK
  • 1,667
-1

Try to execute your script as a startscript in runlevel 6

ln -s /etc/init.d/te1 etc/rc0.d/S01te1
ingopingo
  • 807