Parsing enviroment variables of a process at a BSD-like operating system

Landry Breuil landry.breuil at gmail.com
Sun Jul 5 22:31:36 CEST 2015


On Sun, Jul 5, 2015 at 9:36 PM, Stephan Haller <nomad at froevel.de> wrote:
> Hi Devs,
>
> I know you as being sensitive that all Xfce related applications are
> running well also at BSD-like operating systems. That's why I ask you
> for help.
>
> I'm the author of xfdashboard. I just implemented an application tracker
> which tries to determine which applications are running and marking the
> corresponding icon in the favourites.
>
> To archive it xfdashboard listens to newly opened windows, gets its
> process id and parses the enviroment variable set of the process
> at /proc/<<PID>>/environ. If it contains all needed environment
> variables and if their values are valid, then an application is
> considered to be running and marked. It is ok that this
> file /proc/<<PID>>/environ only contains the environment variables and
> name at the time the process was spawned. I do not need to know if they
> changed in the meantime.
>
> I know BSD is working a different way but I have no idea at all how BSD
> is working in real. So how can get this enviroment variable set under
> BSD? I really would like to use the algorithm at BSD as well because it
> is the best way I found.

Hey,

on openbsd (and netbsd) you can use the kvm_getprocs() interface which
will return you an array of kinfo_proc structure, which you can pass
to kvm_getenvv().
For freebsd there's probably something similar.

I don't really understand why you need to look at the environment to
figure out if an application is running though..

Landry


More information about the Xfce4-dev mailing list