MySensors gateway running as a service
I have an RPi Zerwo 2w that I am running headless. It is running the minimal version of RaspberryPi OS (no GUI). I can run MySensors Gateway (mysgw) in a ssh sesstion. I would like to run mysgw as a service.
Granted, I would get no output, but it is running well.
Well, community, have you ever done this?
@OldSurferDude everyone who has run make install has it running as a service. See the Install section at https://web.archive.org/web/20220306231732/https://www.mysensors.org/build/raspberry
https://github.com/mysensors/MySensors/pull/1421 adds support for more than one gateway on the same machine. You’ll need to configure them to use different eeprom files though, see my note in the PR.
I think I got it working.
note: I use UNAME here. Usually its pi
create directory ~/.config
create the file ~/.config/autostart.sh with the contents:
# # must use full path because at this point in the # process, the user is not logged in # log the time of boot date -R >/home/UNAME/lastboot # wait a little bit to ensure network is up sleep 5 # Start the gateway # pipe stdout and stderr to the null file so that loose characters are not flying about # end with an & to the boot to complete and let the gateway run /home/UNAME/MySensors/bin/mysgw >>/dev/null 2>>/dev/null &
make this file executable
sudo chmod +x ~/.config/autostart.sh
Get the autostart program to run at boot by modifying
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi # add this line # ampersand is very important! /home/UNAME/.config/autostart.sh & exit 0
ensure that rc.local is executable
sudo chmod +x /etc/rc.local
Thanks, I didn't see that!