[racket] Can raco exe assign a name other than "racket"?

From: Eli Barzilay (eli at barzilay.org)
Date: Tue Mar 29 16:22:25 EDT 2011

50 minutes ago, Matthew Flatt wrote:
> At Tue, 29 Mar 2011 14:51:13 -0400, Eli Barzilay wrote:
> > Two hours ago, Matthew Flatt wrote:
> > > At Mon, 28 Mar 2011 07:28:54 -0600, Matthew Flatt wrote:
> > > > To change the name shown by `ps', it looks like Racket could call
> > > > prctl() with PR_SET_NAME --- at least for Linux (2.6.9 and up). I'll
> > > > look into that more.
> > > 
> > > I've pushed that change. Racket sets the process name to match the -N
> > > argument if supplied, otherwise it sets the name to match argv[0].
> > > 
> > > The latter makes `raco exe'-produced executables have the expected
> > > name, and the former makes `drracket' start a process with the name
> > > `drracket' (instead of `gracket').
> > 
> > I'm still seeing this from `ps auxw':
> > 
> >   eli      23017 44.0  3.2 451000 130804 pts/5   Rl+  14:48   0:01 
> > /home/eli/src/plt/bin/gracket -N ../../bin/drracket -l- drracket/dr
> > 
> > wasn't that suppose to change?
> 
> No. In Linux, each process has a name and a command line. The default
> `ps' mode shows names, but BSD mode (among others) shows command lines.
> The prctl() change sets only the name.

Ah, I forgot about that mess.  (I have finger-memorized "auxw".)


> It looks like the command line can be changed in Linux by
> overwriting the space used by the current command-line arguments.
> I'm not sure that's a good idea, partly due to the way a
> command-line would have to be synthesized, and partly because the
> actual command-line already has distinguishing information, but I
> can look into it more.

This does sound iffy, and probably less if the path shows the
executable name for executables compiled with `raco exe'.

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!


Posted on the users mailing list.