redirecting stdout and stderr to /dev/null

Ben Finney ben+python at benfinney.id.au
Sat May 7 21:38:33 EDT 2016


Chris Angelico <rosuav at gmail.com> writes:

> On Sun, May 8, 2016 at 9:54 AM, Jim Dodgen <jim at dodgen.us> wrote:
> > The empty token is needed but useless, it is arg[0] most people just
> > repeat the program name
>
> Far from useless. It's how a process learns its own name, and yes,
> repeating the image name is the most common way to provide that.

In particular, a program's name may not be its file name; it can be
called by one of several different names dependeing on how it is
installed on the system.

Certainly the programmer writing the code cannot hard-code what the
command name will be that invokes the program. Only ‘sys.argv[0]’, read
at run time, can tell.

> Indeed. In fact, I would strongly recommend never using an explicit
> fork/exec from Python - always use subprocess or equivalent. On
> non-Unix platforms, fork/exec may not be available, but subprocess can
> use other methods of invoking programs.

I've already mentioned earlier, but to be sure: the ‘python-daemon’
library <URL:https://pypi.python.org/pypi/python-daemon/> takes care of
the details of becoming a Unix daemon process.

-- 
 \          “… a Microsoft Certified System Engineer is to information |
  `\     technology as a McDonalds Certified Food Specialist is to the |
_o__)                               culinary arts.” —Michael Bacarella |
Ben Finney




More information about the Python-list mailing list