Set the legacy process name with prctl() on assignment to $0 on Linux
authorÆvar Arnfjörð Bjarmason <avar@cpan.org>
Thu, 15 Apr 2010 17:12:04 +0000 (17:12 +0000)
committerSteffen Mueller <smueller@cpan.org>
Thu, 15 Apr 2010 17:50:48 +0000 (19:50 +0200)
commit7636ea95c57762930accf4358f7c0c2dec086b5e
tree32db84fa5f459bc2276fe180194ba66333fdf7c4
parent17fddc5cffca4f968d3565ff012c0cfb3af40d68
Set the legacy process name with prctl() on assignment to $0 on Linux

Ever since perl 4.000 we've only set the POSIX process name via
argv[0]. Unfortunately on Linux the POSIX name isn't used by utilities
like top(1), ps(1) and killall(1).

Now when we set C<$0 = "hello"> both C<qx[ps h $$]> (POSIX) and
C<qx[ps hc $$]> (legacy) will say "hello", instead of the latter being
"perl" as was previously the case.

See also the March 9 2010 thread "Why doesn't assignment to $0 on
Linux also call prctl()?" on perl5-porters.
handy.h
mg.c
pod/perlvar.pod
t/op/magic.t