[lkml]   [2003]   [Apr]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: Stupid API Question.
    On Mon, 7 Apr 2003, Robert White wrote:

    > I have looked, but I have not found...
    > Is there a (safe) Kernel API for setting a processes appearance on the PS
    > listing? (e.g. it's name etc.)
    > I have seen the nonsense about clearing out your various argv[] elements and
    > then using strncpy to replace argv[0]. That seems neither safe nor elegant.
    > It also seems thread unsafe, or at least thread un-interesting, since all
    > the threads would be tagged with the same/last such call.
    > If it exists, where might it be found?
    > If it doesn't exist...
    > An API that could change the text for everything after argv[0] and filled a
    > pointer in the process structure for the process, would be interesting.
    > I say *after* argv[0] because I think having *any* means to change the
    > presentation of argv[0] is a far-too-gaping security hole.
    > I have no idea what the order of magnitude for this effort might be.
    > Managing a normally-null pointer that overrides the various facts if it is
    > set, and is freed back into the kernel memory pool when the process exits,
    > wouldn't be that tough. Intercepting whatever ps(1) (etc.) does to build
    > the output might be non-trivial.
    > Anyway, just a thought...
    > Rob.

    Well `ps` does the wrong thing so users need to do the wrong thing
    to be compatible.

    `ps` reads the command-line from the proc file-system. Obviously
    the command-line can't be changed after a program starts executing
    because it's something that was passed to the program before execution.
    That's like making somebody un-pregnant.

    So, hacks from hackers `setproctitle` comes to mind, replace some of
    the command-line, usually overwriting the environment strings, with
    some alien text.

    With the current API, (Unix) the "'correct'" way to set a process
    title is for everybody to agree upon an environment string like "TITLE=".
    Then, if you want to change the process title, you change that string.
    `ps` would then look for the "TITLE=" token and use the string after that.

    However, it's unlikely that anybody will ever do that because of:

    (1) Inertia.
    (2) NIH.

    PS it's trivial to modify `ps` to search for "TITLE=" and display
    that, as well as the command-line strings IFF "TITLE=" is not found.
    A new `ps` would make new/old compatibility work, but again, it's
    unlikely that this 20 year-old problem will ever be fixed.

    Dick Johnson
    Penguin : Linux version 2.4.20 on an i686 machine (797.90 BogoMips).
    Why is the government concerned about the lunatic fringe? Think about it.

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 13:34    [W:0.022 / U:1.444 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site