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?

  • z2k_@beehaw.org
    link
    fedilink
    English
    arrow-up
    7
    ·
    1 year ago

    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.

    • falchy@sopuli.xyz
      link
      fedilink
      English
      arrow-up
      7
      ·
      edit-2
      1 year ago

      Still relatively beginner, but wouldn’t ‘journalctl -u nameofservice.service’ also give you in depth logs over a longer period of time?

      • redawl@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        4
        ·
        1 year ago

        Adding to this, journalctl -fu service will jump to the bottom of the log and effectively tail -F the log so any new output will be appended to your terminal

        • falchy@sopuli.xyz
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year ago

          Well that’s way easier than my utilization of less or watch or tail that Ive been doing.

        • Nick@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          1 year ago

          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.

          • redawl@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            1
            ·
            1 year ago

            Any idea which unit type systemctl defaults to if there are a timer and a service with the same name? I’ve always left the .service off, but it makes sense to get into the habit of adding it if it can cause confusion.

  • llii@feddit.de
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    1 year ago

    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.