GNU Shepherd 1.0 Service Manager Released As "Solid Tool" Alternative To systemd

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • pWe00Iri3e7Z9lHOX2Qx
    Senior Member
    • Jul 2020
    • 1608

    #21
    I played with Guix extremely briefly. Using Guile seemed like a reasonable choice compared to coming up with your own configuration language like Nix. At the end of the day, as you'd expect, wanting to use non GPL stuff could be painful and there wasn't any desire for that to be easier for users. E.g. someone posted patches to make utilizing ZFS in Guix much easier, but they never even bothered to review them or provide constructive feedback.

    Comment

    • Old Grouch
      Senior Member
      • Apr 2020
      • 700

      #22
      What would be interesting is a review of GNU/Shepherd from a freedesktop.org/systemd expert, together with a review of freedesktop.org/systemd from a GNU/Shepherd expert, rather than uninformed opinions.
      I suspect that GNU/Shepherd may well have a place in use-cases which are not covered by systemd. Many people hoped that systemd would be the init that everyone wanted to replace the maze of twisty little shell scripts (sysvinit) people had found wanting previously. GNU/Shepherd might be that init. It would be good to see the comparisons with OpenRC launchd, and runit as well.
      systemd obviously offers more than just being an init, While it's capabilities are what many people like to make use of, not everyone wants to do that, so having other possible choices for their particular use-cases is good. This is not to say systemd is bad, just that some people have use-cases that they feel are not adequately covered by systemd. Perhaps GNU Shepherd meets their requirements.

      Comment

      • Raka555
        Junior Member
        • Nov 2018
        • 681

        #23
        Originally posted by emblemparade View Post
        Technically speaking, systemd's ini-style files are not the only way to create units. They can be created programatically via API, and indeed much of the internal stuff is created that way.

        For what it's worth, I have often been unhappy with the limitations of ini files and their tepid text templating. Doing anything sophisticated is hard if not impossible. It could be nice to be able to use a domain-specific language instead, like Shepherd does (and unfortunately requires).

        I personally would not pick Guile (a dialect of Scheme, which is a dialect of LISP). But imagine using Lua or JavaScript to write your own generator for systemd units.

        There is a good idea here.
        OMG, then we can have 900MB supervisor programs !

        Comment

        • royce
          Senior Member
          • Aug 2018
          • 660

          #24
          Good lord that service definition file. You can tell it's been designed by someone who's never worked with other people before.

          Comment

          • Quackdoc
            Senior Member
            • Oct 2020
            • 5120

            #25
            Originally posted by royce View Post
            Good lord that service definition file. You can tell it's been designed by someone who's never worked with other people before.
            wrong, this is someone who has worked with other people before, but hated it so much they are gonna put in the damn effort to make sure it doesn't happen again lol

            Comment

            • coder
              Senior Member
              • Nov 2014
              • 8975

              #26
              Originally posted by Old Grouch View Post
              systemd obviously offers more than just being an init, While it's capabilities are what many people like to make use of, not everyone wants to do that, so having other possible choices for their particular use-cases is good.
              Eh, well...

              Originally posted by Phoronix
              Some of the other new features with GNU Shepherd 1.0 include a new log rotation service, a new system log service, a new timer service,

              See, I guess in part because Systemd took the approach of replacing so many userspace services, now I guess everyone thinks they should do that.

              I don't want an init service that cares what log rotate service I use, or whether I use chrond or something else. Likewise, these services shouldn't care what init system I'm using.

              Comment

              • ahrs
                Senior Member
                • Apr 2021
                • 588

                #27
                Originally posted by emblemparade View Post
                But imagine using Lua or JavaScript to write your own generator for systemd units.

                There is a good idea here.
                Lua I could live with, but JavaScript? God no. We have a enough of a mess there with PolicyKit. I like JavaScript as a language but it does not make for a very good configuration language and requiring a bloated VM like SpiderMonkey is no fun either. Lua is at least designed for easily embedding.

                Comment

                • moonwalker
                  Senior Member
                  • Dec 2013
                  • 242

                  #28
                  Originally posted by TheMightyBuzzard View Post

                  No, its greatest strength is that it appeals to corporate douchebags. Noobs fresh out of college are much cheaper than experienced admins.
                  On a surface - yes, but there is the hidden cost of nothing working properly and everything exploding in your face. Or Java/microservices/whatever used always and everywhere instead of the right tool for the job. At the end of the day it's cheapest to have a combination of noobs being shepherded by experienced admins/engineers.

                  Personally, I'd much rather deal with declarative syntax instead of having to either re-implement or copy/paste a bunch of boilerplate every time. At least from what I still remember dealing with SysV init scripts prior to Debian first including systemd, IIRC some time around 2010/2011 (yes, systemd was available in Debian repos long before it was made default init in Jessie in 2015).

                  Comment

                  • moonwalker
                    Senior Member
                    • Dec 2013
                    • 242

                    #29
                    Originally posted by coder View Post
                    I don't want an init service that cares what log rotate service I use, or whether I use chrond or something else. Likewise, these services shouldn't care what init system I'm using.
                    Amen, brother.

                    Comment

                    • braiam
                      Junior Member
                      • Dec 2021
                      • 38

                      #30
                      Originally posted by skeevy420 View Post
                      Code:
                      Description=OpenSSH Daemon
                      Wants=sshdgenkeys.service
                      After=sshdgenkeys.service
                      After=network.target
                      
                      [Service]
                      Type=notify-reload
                      ExecStart=/usr/bin/sshd -D
                      KillMode=process
                      Restart=always
                      
                      [Install]
                      WantedBy=multi-user.target
                      ​
                      Versus

                      Code:
                      (define sshd
                      (service
                      '(sshd ssh-daemon) ;the secure shell daemon
                      #:start (make-inetd-constructor ;start on demand
                      '("/usr/sbin/sshd" "-D" "-i")
                      (list (endpoint
                      (make-socket-address AF_INET INADDR_ANY 22))
                      (endpoint
                      (make-socket-address AF_INET6 IN6ADDR_ANY 22)))
                      #:max-connections 10)
                      #:stop (make-inetd-destructor)
                      #:respawn? #t))
                      
                      (register-services (list sshd))
                      (start-in-the-background '(sshd))​​
                      Not gonna lie, the # not being used to comment out code throws me off.
                      The .service file doesn't do everything that the guile thing is doing, IMO. Socket based activation is another file.

                      Comment

                      Working...
                      X