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
      ·
      5か月前

      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
        ·
        5か月前

        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
        5か月前
        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).