> On Mon, Apr 08, 2002 at 04:51:57PM -0400, Guido van Rossum wrote: > >When I run a Python script that has a #! directly, ps doesn't show me > >the "python" part -- only the script name. This is in Linux (Red Hat > >7.2). Maybe it's different for you? [Sean] > I was told at one point that "#!/usr/bin/env python" was the preferred > she-bang incantation. However, calling it directly on my 7.2 box seems to > show Python in either case: > > guin:tmp$ printf '#!/usr/bin/python\nimport time; time.sleep(5)' >testscript > guin:tmp$ ./testscript & ps -awlx | grep testscript > 000 500 8297 6741 10 0 2256 1192 do_sel S pts/0 0:00 /usr/bin/python ./testscript > guin:tmp$ printf '#!/usr/bin/env python\nimport time; time.sleep(5)' >testscript > guin:tmp$ ./testscript & ps -awlx | grep testscript > 000 500 8300 6741 9 0 2256 1192 do_sel S pts/0 0:00 python ./testscript Alas, yes. Default ps shows the script name, but ps -f does indeed show the Python interpreter. > >I'm not sure I understand. If you have the argc/argv/environ set, why > >do you need to know &argc and &argv? > > On Linux and a few other systems, setting the ps string requires re-writing > the block of memory starting at argv[0]. If the data in envp is > allocated next to argv, you can also make use of that (so that you can > write strings longer than "python testscript" in length). > > The typical way of doing this involves first making a copy of argv and envp > for the process to continue using, because otherwise argv suddenly becomes > something entirely different than what it originally was. > > So, we need to know &argv so that we can hand back the new location. Sigh. The more I hear about this, the more I think, too ugly, this doesn't belong in Python. --Guido van Rossum (home page: http://www.python.org/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4