lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Hi.

Thus spoke Nicholas Joll:
> Surely there's an easier way for me to tell whether a process is
> running than by determining how pidof works and reimplementing its
> C code, myself, in lua.

Are you sure? From my understanding of how Lua is designed, this type of
task – querying the operating system for information on running
processes – is exactly what Lua *doesn't* aim to provide, because the
details of how to do this are highly operating-system-specific, and much
better suited to "application"-specific C code or Lua modules that are
bound to or loaded into your program. Checking a process for liveness,
given a PID, is within scope of luaposix, as already mentioned. However,
locating the correct PID is definitely neither in the scope of the Lua
standard library nor of the luaposix library, as you have also already
experienced. So, if you can't find a ready-made implementation that
suits your needs, then I think it likely that you will have to get your
hands dirty and write quite a bit of code yourself, in C or Lua or both.

So, assuming you do end up implementing the /proc-traversal yourself...

> Well, I know how to do elementary file-handing in lua, but what do
> I seek in /proc?

...you'll likely want to read the man page for proc to understand the
layout.

* * *

Really, at this point, I'd argue that doing the traversal yourself and
getting it right is so much more implementation effort than just
shelling out to pidof and taking the performance hit. I can't imagine
a situation – aside from running on a resource-constrained system
like a microcontroller – where this performance hit is so intolerable
that the reimplementation route is worthwhile.

Cheers,
Marco

Attachment: OpenPGP_signature
Description: OpenPGP digital signature