1

Before I describe the problem, I just want to mention that I was able to get this working on a Pi 3 under Raspbian Buster. For some reason it's not firing on a Pi 4 under the same OS.

I have a basic bash script with an infinite loop that I want to run at boot. In order to ensure the output of all commands within the script are directed to the TV connected to HDMI, I want to launch the script using openvt. The service appears to start without error but the script just never runs.

The script (we'll call it /home/pi/test.sh) looks like this:

#!/bin/bash
while true
do
        echo "Still alive"
        echo "Still alive" >> /tmp/output
        sleep 5
done

I created a service: /etc/systemd/system/test.service that looks as follows:

[Unit]
Description=Test Script
After=network.target

[Service]
WorkingDirectory=/home/pi
ExecStart=/bin/bash -c '/bin/openvt -c 1 -f -- /home/pi/test.sh'

[Install]
WantedBy=multi-user.target

After enabling the service and manually starting it (or after a reboot), the /tmp/output file is never created and nothing outputs to the screen on HDMI.

systemctl status test.service outputs this:

● test.service - Test Script
   Loaded: loaded (/etc/systemd/system/test.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Fri 2019-12-27 08:27:31 GMT; 2min 17s ago
  Process: 527 ExecStart=/bin/bash -c /bin/openvt -c 1 -f -- /home/pi/test.sh (code=exited, status=0/SUCCESS)
 Main PID: 527 (code=exited, status=0/SUCCESS)

Dec 27 08:27:31 raspberrypi systemd[1]: Started Test Script.
Dec 27 08:27:31 raspberrypi systemd[1]: test.service: Succeeded.

The output from journalctl --unit=test.service is as follows:

-- Logs begin at Fri 2019-12-27 08:27:16 GMT, end at Fri 2019-12-27 08:29:49 GMT. --
Dec 27 08:27:31 raspberrypi systemd[1]: Started Test Script.
Dec 27 08:27:31 raspberrypi systemd[1]: test.service: Succeeded.

If I manually run the command:

sudo /bin/bash -c '/bin/openvt -c 1 -f -- /home/pi/test.sh'

it runs fine and behaves as expected. Any reason it won't run as a service?

Ingo
  • 42,107
  • 20
  • 85
  • 197
wedwo
  • 151
  • 1
  • 6

1 Answers1

2

OK, the service works when running openvt with -s -w parameters:

ExecStart=/bin/openvt -s -w /home/pi/test.sh
wedwo
  • 151
  • 1
  • 6