diff options
author | Ron Yorston <rmy@pobox.com> | 2018-03-28 13:28:03 +0100 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2018-03-28 13:28:03 +0100 |
commit | 32d2c5ca638aad48233d2b68683a75e905ef9821 (patch) | |
tree | 4083fca2516b30fcd782284e22b561fb18f8203c /libbb | |
parent | 49ef6618c2e101953032b2c660bf7b246d07ce2d (diff) | |
download | busybox-w32-32d2c5ca638aad48233d2b68683a75e905ef9821.tar.gz busybox-w32-32d2c5ca638aad48233d2b68683a75e905ef9821.tar.bz2 busybox-w32-32d2c5ca638aad48233d2b68683a75e905ef9821.zip |
ps: display applet names in process listing
In standalone shell mode all busybox-w32 applets are displayed as
'busybox.exe' in a process listing.
I haven't found a satisfactory way to query a running instance of
busybox-w32 to determine which applet it's running. Handle a couple
of cases:
- the process running the process scan knows its own PID and knows
which applet it is;
- just before invoking applet_main set an environment variable whose
name contains the PID and whose value is the current applet name.
Children running a process scan will inherit their parent's environment
and can therefore match the parent's PID to its applet name.
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/appletlib.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libbb/appletlib.c b/libbb/appletlib.c index 1bae940c2..733d9ca12 100644 --- a/libbb/appletlib.c +++ b/libbb/appletlib.c | |||
@@ -990,6 +990,15 @@ void FAST_FUNC run_applet_no_and_exit(int applet_no, const char *name, char **ar | |||
990 | } | 990 | } |
991 | if (ENABLE_FEATURE_SUID) | 991 | if (ENABLE_FEATURE_SUID) |
992 | check_suid(applet_no); | 992 | check_suid(applet_no); |
993 | |||
994 | #if ENABLE_PLATFORM_MINGW32 | ||
995 | { | ||
996 | char *var = xasprintf("BB_APPLET_%d=%s", getpid(), applet_name); | ||
997 | putenv(var); | ||
998 | free(var); | ||
999 | } | ||
1000 | #endif | ||
1001 | |||
993 | xfunc_error_retval = applet_main[applet_no](argc, argv); | 1002 | xfunc_error_retval = applet_main[applet_no](argc, argv); |
994 | /* Note: applet_main() may also not return (die on a xfunc or such) */ | 1003 | /* Note: applet_main() may also not return (die on a xfunc or such) */ |
995 | xfunc_die(); | 1004 | xfunc_die(); |