jordansissel / pleaserun

An attempt to abstract this "init" script madness.
Other
1.17k stars 75 forks source link

Provide a systemd flag for "vendor" vs admin #137

Open jsoref opened 5 years ago

jsoref commented 5 years ago

elastic/logstash appears to use pleaserun to generate its systemd service (for ubuntu/debian).

Since logstash is being installed from a debian package made by the vendor, the service should end up in /lib/systemd/system.

I saw a flag for -p systemd-user, it might make sense if there was a -p systemd-packager.

jordansissel commented 5 years ago

It’s unclear when I was initially reading systemd docs what these terms (admin, vendor, etc) meant. In most docs I remember, the implication is that the vendor is the upstream linux distro, so I chose /etc/ based on this.

Can you help me understand the negative impact of the current location used by pleaserun?

On Wed, Dec 26, 2018 at 5:42 PM Josh Soref notifications@github.com wrote:

elastic/logstash appears to use pleaserun to generate its systemd service (for ubuntu/debian).

Since logstash is being installed from a debian package made by the vendor, the service should end up in /lib/systemd/system.

I saw a flag for -p systemd-user, it might make sense if there was a -p systemd-packager.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/jordansissel/pleaserun/issues/137, or mute the thread https://github.com/notifications/unsubscribe-auth/AAIC6kLMXG8-_Wjy9Hovd8dy4nJmROUAks5u9CV3gaJpZM4ZiOG8 .

jsoref commented 5 years ago

/etc is for me, the admin. It represents my customizations/personality added to a system.

If I put something into /etc/systemd/system/kibana.service, I expect it not to be stomped upon by a package.

It also means that I can quickly backup/copy the files that I've created to another system at any time w/o worrying about running into system packages or copying files that I shouldn't because they're owned by packages.

Packages are supposed to go into /lib (technically once debian/ubuntu finish the /usr merge, it'll be /usr/lib/systemd/system -- fedora has already completed that merge).

jsoref commented 5 years ago

https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files does a fairly good job of explaining the /etc vs /lib distinction

jsoref commented 5 years ago

Probably the most important thing is that if you (a package manager) put a file in /etc/systemd/system/something.service then i can't safely use systemctl mask something.mask, because that would more or less delete the only instance of the file you put there.