3 ms·
Because "Stop Job Running For User 1001: (22s / 90s)" with no indication of which @$%^ing stop job it is is incredibly annoying. And the fact that "systemctl st
by bandrami 9mo ago
Because "Stop Job Running For User 1001: (22s / 90s)" with no indication of which @$%^ing stop job it is is incredibly annoying. And the fact that "systemctl start blahd.service" exits successfully even if blahd didn't actually start because a misconfigured blahd not starting is "correct" makes me want to burn the server room down from time to time. And nondeterministic service initialization is absolutely Broken and Wrong.
It's.... fine, mostly. It solved no problems I had and introduced some minor ones I didn't, and offers significantly less visibility, but it's no longer the worst offender in those regards (hello, Wayland!) so I just write it off as another of the many ways the Linux experience has gotten worse over time.
- PunchyHamster 9mo ago> And the fact that "systemctl start blahd.service" exits successfully even if blahd didn't actually start because a misconfigured blahd not starting is "correct" makes me want to burn the server room down from time to time. we had tens of thousands of init scripts where we fixed that exact problem with init scripts that were delivered with distro. It's not systemd problem and if anything systemd made it better. > And nondeterministic service initialization is absolutely Broken and Wrong. if your dependencies are wrong but init system works you were just lucky. If you gonna complain, complain about no option to tell machine to shut down in a given time interval which means "my UPS got 5 minutes left pls turn off" is unsolvable under systemd unless you go thru every single unit file in distro and override their timeouts.
- bandrami 9mo agoI mean, 25 years ago I don't think any shop used the distro-supplied init scripts; those were just a skeleton you used to get the system into a state where you could edit them.
- belorn 9mo agoIn the old time with init scripts you had to figure out where to put all those sleep(10) based on the servers specific hardware and software stack. Far from everything in the initi script blocked execution until they completely finished, and things that previously worked could suddenly stop working if you changed hardware or software. The big difference that created deterministic servers in the past is that you could install the server once and then leave it for 10+ years without doing any updates. People were proud of servers and services with massive uptimes with no patches and no reboots. I only see those now if they either have no internet connection or are locked down containers with very restricted network access.
- t43562 9mo agoInit scripts were horrible Here's a dinit service file for starting my bluetooth daemon: type = process command = /usr/lib/dinit/dbus-wait-for -s -f 4 -n org.bluez /usr/lib/bluetooth/bluetoothd smooth-recovery = true logfile = /var/log/dinit/bluetoothd.log depends-on = dbus depends-on = local.target before = login.target ready-notification = pipefd:4 This is about as complicated as it gets - ones I make myself might be 4 lines. There's no dodgy bash script behind all of this - it's C++ that just works - I can stop start, list and reload services with reliability. I love it.
- bandrami 9mo agoI still would love somebody to explain to me what's "dodgy" about a shell script that runs the commands you want run...
- direwolf20 9mo agoI think it's the brittleness. Tomorrow your ethernet adapter is enp4s1 instead of enp3s0 (because of systemd) so your rc script doesn't set up networking and you have to fix it.
- bandrami 9mo agoYeah devfs was better at that. A static dev tree was better still.
- direwolf20 9mo agoDevice numbers are dynamically allocated. The main handle is the name. Network interfaces don't go in /dev anyway and are not files
- bandrami 9mo agoThis was almost 30 years ago so my memory is fading, but pre-devfs when they were just in the /proc tree you could tell the kernel to bring them up in a given order and so assign the name you wanted to a given card.