Edit: Are transactions and jobs the same thing? Both are mentioned in the documentation here and there, without having an own page or chapter AFAIK.
Edit: Are transactions and jobs the same thing? Both are mentioned in the documentation here and there, without having an own page or chapter AFAIK.
“Start with” the “blog”?
Clearly, the two does not connect well … for systemd.
It's worked very well for me. Not seeing your disconnect here. Blog for concepts, man pages for specifics
(replace "info" with some better reader than the default one though)
It's linked from the man page. https://man7.org/linux/man-pages/man1/systemd.1.html
Unfortunately the reading will still need to do ourselves. Not trying to be snarky here, it happens to me all the time that I have not read something and complain it's hard to understand.
That would have its place in a GNU info book instead.
While they are not comparable entities I'd say systemd documentation is in better shape than Linux kernel documentation. (Not to negate the efforts of those who do work with kernel documentation, but to stress the huge areas of no or pretty obsolete documentation).
Of course you can buy Linux (incl. user space) from the commercial players. I have only worked in one small project in my career that did, but I did not notice that better documentation was worth paying for.
My take is that pay vs free software and good vs bad documentation are orthogonal and you can be in any of the four quadrants.
[1] https://www.reddit.com/r/swift/comments/ljl6bq/we_were_so_fr...
It's definitely not independent. Few people enjoy writing documentation and even then, it takes a lot of time. Plus, writing good documentation is something you need to train for. Very few OS people want to spend their free time writing code and then spend just as much again for - usually boring - documentation and support tasks.
Companies have exactly the same problem, but they have the option to throw money at the problem. Sure, there are some OS projects with good documentation (usually sponsored by a company) and a lot of proprietary stuff without, but proprietary software usually has more financial backing and that's directly related to good documentation.
Not explicitly company backed: Ruby, Python.
Backed by multiple companies: PostgreSQL, JavaScript.
Backed by one company: Ruby on Rails, Elixir and Phoenix, Nginx.
Don't know: Django, Apache Httpd.
Of course I might be wrong about the categories.
Isn't that what I said when referring to commercial Linux distros? Of course it would be easy to continue enumerating.
But morally it entitles you much more the complain if you pay and it's poor quality than if you just get it for free with no promises.
Jobs are externally visible. You can see them easily (e.g. systemctl list-jobs), and systemd provides an interface for them over D-Bus[1]. There's no similar interface for anything called a transaction.
From the documentation that does mention transactions, it sounds like transactions are internal to systemd. When systemd starts a unit, it works out the dependency graph and spins up a job for each unit that need to be started before the originally requested unit can start. That would all be considered a single transaction, but it might spin out into dozens of separate jobs that get queued up.
As an example, when systemd starts on boot, all it really wants to do is successfully reach some target (e.g. multi-user.target). systemd starts from there and works backwards, building a dependency graph with every single unit that needs to start up as a part of the boot sequence to reach that target. You could probably consider that a single transaction, but the full dependency graph would probably pull in hundreds of jobs.
I don't work on systemd or anything so this isn't canon.