I am thinking about moving to Guix, and was wondering what you all think of Shepherd?

What are things you like? What are its shortcomings? Any cool or weird things you wish you knew before using it?

For context, I am currently using Runnit.

  • fishinthecalculator@lemmy.ml
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    11 months ago

    It is quite basic still and historically had some problems with reboots, but lately it has gained a lot of attention and bug fixes. I have no experience of runnit, compared to systemd is leaner but in my experience there’s no big feature lacking

  • Doom4535@lemmy.sdf.org
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    3 months ago

    I miss ‘systemctl poweroff’ (haven’t learned the new herd equivalent); also, ‘herd --help’ doesn’t really give any useful information and only lists a few things you can do… Have to really dig into the documentation (someday). Also, the ‘shutdown’ syntax has changed… Otherwise, most stuff has gone well

    • LalSalaamComrade@lemmy.ml
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      3 months ago

      You can use shutdown or reboot - but it will require privilege escalation with sudo. The desktop environment’s shutdown and reboot command should be working fine, just the way it is intended to. systemd is not an init system, but all the software tools crammed into one. Other init systems, including shepherd tries to keeps it simple and clean.

      • Doom4535@lemmy.sdf.org
        link
        fedilink
        arrow-up
        1
        ·
        3 months ago

        What I mean with shutdown, is the flags have changed (So, I can’t do ‘shutdown -hP’ or ‘shutdown -hP now’)

        • LalSalaamComrade@lemmy.ml
          link
          fedilink
          English
          arrow-up
          2
          ·
          3 months ago

          With that respect, you’re not wrong. It is actually a Guile script:

          #!/gnu/store/mfkz7fvlfpv3ppwbkv0imb19nrf95akf-guile-3.0.9/bin/guile --no-auto-compile
          -*- scheme -*-
          !#
          
          (set! %load-path (cons "/gnu/store/r8qkjgpsy4zy982y8zifryi4n6b3qnvs-shepherd-0.10.5/share/guile/site/3.0" %load-path))
          (set! %load-compiled-path (cons "/gnu/store/r8qkjgpsy4zy982y8zifryi4n6b3qnvs-shepherd-0.10.5/lib/guile/3.0/site-ccache" %load-compiled-path))
          (apply (@ (shepherd scripts halt) main) (cdr (command-line)))
          

          Now, interestingly, there is also another command called halt, which also happens to be a Guile script:

          #!/gnu/store/mfkz7fvlfpv3ppwbkv0imb19nrf95akf-guile-3.0.9/bin/guile --no-auto-compile
          -*- scheme -*-
          !#
          
          (set! %load-path (cons "/gnu/store/r8qkjgpsy4zy982y8zifryi4n6b3qnvs-shepherd-0.10.5/share/guile/site/3.0" %load-path))
          (set! %load-compiled-path (cons "/gnu/store/r8qkjgpsy4zy982y8zifryi4n6b3qnvs-shepherd-0.10.5/lib/guile/3.0/site-ccache" %load-compiled-path))
          (apply (@ (shepherd scripts halt) main) (cdr (command-line)))
          

          This needs to be documented properly.

          • Doom4535@lemmy.sdf.org
            link
            fedilink
            arrow-up
            1
            ·
            3 months ago

            Dang, I had no idea and never thought to inspect it; thank you for pointing that out, now maybe I can finally figure out how to nicely shutdown from the terminal