https://bugzilla.novell.com/show_bug.cgi?id=723708 https://bugzilla.novell.com/show_bug.cgi?id=723708#c25 Michael Schröder <mls@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |NEW CC| |mls@suse.com InfoProvider|mls@suse.com | --- Comment #25 from Michael Schröder <mls@suse.com> 2011-11-21 13:47:33 UTC --- To shed some light on this, perl-5.14 uses prctl() to set $0, perl-5.12 did not do this. Here's the perldelta entry: Assignment to C<$0> sets the legacy process name with C<prctl()> on Linux On Linux the legacy process name will be set with L<prctl(2)>, in addition to altering the POSIX name via C<argv[0]> as perl has done since version 4.000. Now system utilities that read the legacy process name such as ps, top and killall will recognize the name you set when assigning to C<$0>. The string you supply will be cut off at 16 bytes, this is a limitation imposed by Linux. amavisd reads $0 (which results in /usr/sbin/amavisd), modifies it, and writes it back to $0. perl then does the prctl() call with the new name. One can argue that perl should just use the basename for the prctl() call, to be somewhat compatible to the kernel's setup_new_exec() call. But I don't think this would fix the bug, as amavisd modifies $0 by appending/prepending stuff, so checkproc probably won't detect a match (but maybe it cuts off after a space?). Seems like there's no trace of the old name left when a prctl(PR_SET_NAME) has been done. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.