puppy on systemd (experiment)

Under development: PCMCIA, wireless, etc.
Post Reply
Message
Author
mistfire
Posts: 1411
Joined: Wed 05 Nov 2008, 00:35
Location: PH

puppy on systemd (experiment)

#1 Post by mistfire »

This thread will trigger controversy due to init wars. I will just share my thoughts here.

I tried to run systemd on puppy. I used TazPuppy since systemd is available on their repo.

So we know already that sysvinit and systemd are not compatible. So I made a radical approach, I tried to made systemd work like sysvinit. This is how I did

1. Modify rc.sysinit script. move mounting /dev /sys /proc /run and tmpfs folders on /sbin/init. Disable starting udevd and dbus on the script

2. Create systemd folders in /run

3. Create a service file in /usr/lib/systemd/system/multi-user.target.wants. This service will trigger rc.sysinit script after sysinit.target before getty.service

4. Create dbus.service file /usr/lib/systemd/system/multi-user.target.wants

It successfully works. However its requires sudo to shutdown and reboot using systemctl command, rc.shutdown are not yet working, and sound doesn't work on systemd while on sysvinit works. I tried to figured it out how to run rc.shutdown upon shutdown right before umounting all filesystem

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#2 Post by s243a »

As I mentioned elsewhere, I do my best to avoid systemd and have so far been successful but as much as I dislike the systemd project, I believe in giving users choice and I think part of the pupylinux experience is about experimenting. My belief in user choice trumps my dislike of systemd. I also think that it is going to be harder to avoid systemd in the future as many projects only document systemd ways of starting an application...except for the manpage of the actual executable.

If in the future there is an application I need and can't figure out how to start it without systemd then I might be forced to try systemd in the future.

I think though that for puppy:
1. systemd should never be the default choice
2. official puppies shouldn't use systemd.

Regarding, your experiment, I'm wondering if it is possible to start a systemd service without using the systemd init. The PR says that part of systemd is about being a service manager and a service manager shouldn't need to be the init of the whole OS.
Find me on [url=https://www.minds.com/ns_tidder]minds[/url] and on [url=https://www.pearltrees.com/s243a/puppy-linux/id12399810]pearltrees[/url].

mistfire
Posts: 1411
Joined: Wed 05 Nov 2008, 00:35
Location: PH

#3 Post by mistfire »

My goal for this experiment was to figure out how puppy works regardless of init system used. I started with systemd. If I suceeded with systemd, I will turn to runit and openrc.

What's important was puppy was using sysvinit by default

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#4 Post by s243a »

mistfire wrote:My goal for this experiment was to figure out how puppy works regardless of init system used. I started with systemd. If I suceeded with systemd, I will turn to runit and openrc.

What's important was puppy was using sysvinit by default
Don't you mean busybox init by default?
Find me on [url=https://www.minds.com/ns_tidder]minds[/url] and on [url=https://www.pearltrees.com/s243a/puppy-linux/id12399810]pearltrees[/url].

mistfire
Posts: 1411
Joined: Wed 05 Nov 2008, 00:35
Location: PH

#5 Post by mistfire »

@s243a
busybox init was sysvinit

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#6 Post by s243a »

mistfire wrote:@s243a
busybox init was sysvinit
busybox init doesn't suport "run levels" sysv init does.
Find me on [url=https://www.minds.com/ns_tidder]minds[/url] and on [url=https://www.pearltrees.com/s243a/puppy-linux/id12399810]pearltrees[/url].

mistfire
Posts: 1411
Joined: Wed 05 Nov 2008, 00:35
Location: PH

#7 Post by mistfire »

But busybox init was still under sysvinit family. Because of basic principles of init.

s243a
Posts: 2580
Joined: Tue 02 Sep 2014, 04:48
Contact:

#8 Post by s243a »

mistfire wrote:But busybox init was still under sysvinit family. Because of basic principles of init.
I'm not sure where "sysvinit family" is defined but:
If you want runlevels, use sysvinit.
https://git.busybox.net/busybox/tree/examples/inittab
Find me on [url=https://www.minds.com/ns_tidder]minds[/url] and on [url=https://www.pearltrees.com/s243a/puppy-linux/id12399810]pearltrees[/url].

mistfire
Posts: 1411
Joined: Wed 05 Nov 2008, 00:35
Location: PH

#9 Post by mistfire »

Update: I successfully reboot and shutdown TazPuppy from systemd. However verbose message keep showing even the dialog was shown due asynchronous task. I trying to figured out how shown interactive dialog asking if user wants to save session to save file or creating a new save file. Also I noticed that alsactl init command dont work on systemd. It can't find the default soundcard. However it can detect soundcard when sysvinit is used

Post Reply