So today I discovered that there’s a cron job that holds non-reproducible state that died, and now our system is fucked.

The cron job doesn’t live inside any source control. This morning it entered a terminal state, and because it overwrites its state there’s no way to revert it.

I’m currently waiting for the database rollback and have rewritten it in a reproducible/idempotent way.

      • Sherry@programming.dev
        link
        fedilink
        arrow-up
        4
        ·
        3か月前

        that might be a stupid question, but why would you running all services in tmux be a bad idea? a co-worker of mine is doing exactly that right now, which is why I’m asking.

        • swab148@lemm.ee
          link
          fedilink
          English
          arrow-up
          4
          ·
          3か月前

          It’s not horrible, like it’ll do the job just fine, it’s just probably a better idea to use systemd and like, containers and whatnot, but I couldn’t be arsed to fiddle with all that for Jellyfin, caddy reverse proxy, and two modded Minecraft servers, so shell scripts and tmux won the day. It takes a little extra time to restart everything after an update, and maybe I’ll get the motivation to do things “correctly™” one day, but today is not that day.

        • qaz@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          3か月前
          1. They’re all gone when you restart
          2. It doesn’t properly deal with logging
          3. You can’t set up dependencies between services but that doesn’t matter due to point 1

          I recommend using systemd services and/or docker compose instead. systemd services are files that describe which program / script to run and when (like after networking is active or after a certain other service is loaded).