site  contact  subhomenews

Revisiting pup_event

February 15, 2018 — BarryK


Due to dissatisfaction with available service managers, I am thinking of writing my own, as an extension of "pup_event".

In June 2013, I wrote pup_event_frontend_d.bac, BaCon code. /usr/local/pup_event has this utility, plus some more scripts. The main objective was to manage hotplugging, for example to detect when a USB drive is plugged in or removed.

I announced pup_event_frontend_d.bac here:

http://bkhome.org/archive/blog2/201306/new-pupeventfrontend.html

It was very creative, totally different from any other Linux distro. Not long after that, I retired from the Puppy development "front line".

Actually, the concept of pup_event started earlier, circa 2008, see this post:

http://bkhome.org/archive/blog2/200805/drive-icons-on-desktop.html

...the post has links to some documentation, which has moved, now here:

http://bkhome.org/archive/puppylinux/technical/module-loading.htm

http://bkhome.org/archive/puppylinux/technical/event-management.htm

Fast forward to today, I wondered what has happened to pup_event in woof-CE. There has been a lot done to it, mostly by "wdlkmpx". For example, he rewrote pup_event_frontend_d in C:

https://github.com/puppylinux-woof-CE/woof-CE/blob/4439fcc63d3eedb839fa625bb8f983d3b2461e3d/woof-code/rootfs-skeleton/usr/local/pup_event/pup_event_frontend_d.c

...that page is an earlier version. Since then, it got moved, and there have been more commits.

For myself, I like BaCon, and will probably stay with it.

I think that pup_event can be easily extended to be a service manager. My tentative thinking is to remove /usr/local/pup_event_frontend_d (which is launched from /root/.xinitrc when X starts), replace with pup_event_backend (that will be launched from /etc/rc.d/rc.sysinit).

This new pup_event_backend will do the same as pup_event_frontend_d, but a couple of extra things, including service management.

There are a couple of old scripts in /sbin:

pup_event_backend_firmware
pup_event_backend_modprobe
pup_event_backend_modprobe_protect

These were developed back around 2008 - 2012, in collaboration with "rerwin" (Richard Erwin).

There are still in woof-CE, untouched since being imported from Woof2, four years ago:

https://github.com/puppylinux-woof-CE/woof-CE/tree/testing/woof-code/rootfs-skeleton/sbin

I don't know if we need them anymore. Perhaps not. They were developed in the days of 'module-init-tools', before 'kmod', when the kernel did not have automatic /dev node creation and automatic firmware loading.

That early backend stuff is described in the above link, here it is again:

http://bkhome.org/archive/puppylinux/technical/module-loading.htm 

Tags: easy, quirky