So I followed this youtube video on setting up RTL-433 service on a Ubuntu server. Problem is, it seems to keep failing after a while. Sometimes doing a systemctl start service doesn’t work and I will have to reboot the system and then it will work. It will work for a while and later in the day it will suddenly stop. Sometimes I can do a systemctl start, but sometimes not.
Anyone know how I can have this service constantly up and running, and restart if it fails?
To have it automatically restart on failure, you can add the following to your systemd unit:
[Service] Restart=on-failure RestartSec=5s
See this blog post for more information.
But to find the root cause of why it’s failing, you can run
systemctl status <service>
when it fails to get the most recent logs and hopefully an error as to why it failed.Still relatively beginner, but wouldn’t ‘journalctl -u nameofservice.service’ also give you in depth logs over a longer period of time?
Yes, you can get the full log with journalctl.
Adding to this,
journalctl -fu service
will jump to the bottom of the log and effectivelytail -F
the log so any new output will be appended to your terminalWell that’s way easier than my utilization of less or watch or tail that Ive been doing.
Yeah it’s pretty slick
I second
journalctl -f -u SERVICE_NAME.service
it’s great and just works well. The.service
isn’t required, but it’s a good habit to get into since systemd also has mounts and timers.
I also would recommend to find out why the service crashes.
You can try to increase the verbosity of rtl-433 with the arguments -v, -vv, -vvv and -vvvv. With every „v“ you get more information on what the program does.
Maybe you can get a hint why it crashes.
Edit: For this it’s best to run rtl-443 directly in a terminal without the service so that you can directly see the output.
journal -xu, what do you get?