Shutdown scripts for OSMC
The default SSH user name for OSMC is osmc, password osmc
- Key in :
- cd /etc
- sudo nano irswitch.sh
-
Copy and paste (use shift+ins to paste in nano) the following text into the editor window
#!/bin/bash
# this is the GPIO pin receiving the shut-down signal
GPIOpin1=14
echo "$GPIOpin1" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio$GPIOpin1/direction
while true; do
sleep 1
power=$(cat /sys/class/gpio/gpio$GPIOpin1/value)
if [ $power != 0 ]; then
sudo systemctl stop mediacenter
echo "out" > /sys/class/gpio/gpio$GPIOpin1/direction
echo "1" > /sys/class/gpio/gpio$GPIOpin1/value
sleep 3
sudo shutdown -h now
fi
done - Press ctrl+x to exit, y to confirm, enter to save the file
-
Key in
sudo chmod +x irswitch.sh - The above RemotePi Board shutdown script needs to be registered as a service, key in
cd /etc/systemd/system
sudo nano irswitch.service - Copy and paste the following text into the editor window
[Unit]
Description=RemotePi Service
After=systemd-modules-load.service
[Service]
Type=simple
ExecStart=/etc/irswitch.sh
[Install]
WantedBy=multi-user.target - Press ctrl+x to exit, y to confirm, enter to save the file
- Key in
sudo systemctl enable irswitch.service
The following additional script enables the RemotePi Board to cut off the power, after OSMC has been shut down from the on-screen menu.
- Key in
- sudo nano /etc/shutdown.sh
- Copy and paste the following contents
- #!/bin/bash
REBOOT_GREP=$(systemctl list-units --type=target | grep reboot)
SHUTDOWN_GREP=$(systemctl list-units --type=target | grep shutdown)
if [ "$SHUTDOWN_GREP" ] && [ ! "$REBOOT_GREP" ]; then
# the condition above makes sure, that the shutdown sequence is not run on reboot
GPIOpin=15
GPIOpin1=14
echo "$GPIOpin" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio$GPIOpin/direction
echo "1" > /sys/class/gpio/gpio$GPIOpin/value
sleep 0.125
echo "0" > /sys/class/gpio/gpio$GPIOpin/value
sleep 0.2
echo "1" > /sys/class/gpio/gpio$GPIOpin/value
sleep 0.4
echo "0" > /sys/class/gpio/gpio$GPIOpin/value
echo "$GPIOpin1" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio$GPIOpin1/direction
echo "1" > /sys/class/gpio/gpio$GPIOpin1/value
sleep 4
fi - Press ctrl+x to exit, y to confirm, enter to save the file
-
After saving the file, mark it as executable with
sudo chmod +x /etc/shutdown.sh - Key in
- sudo nano /etc/systemd/system/irswitch2.service
- Copy and paste the following text into the editor window
[Unit]
Description=RemotePi Board Shutdown Service
Before=multi-user.target
Conflicts=shutdown.target
[Service]
ExecStart=/bin/true
ExecStop=/etc/shutdown.sh
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target - Press ctrl+x to exit, y to confirm, enter to save the file
- Key in
sudo systemctl enable irswitch2.service - Reboot one time
- After reboot you can use the RemotePi Board to power cycle OSMC
The above scripts have been tested and are confirmed to work with with OSMC version 2019.11-1. Although not yet tested, they most likely will work with newer versions as well.
This page was last updated 19-Jan-2020