Server 在HP-UX中是否有通过pid获取环境变量的方法

Server 在HP-UX中是否有通过pid获取环境变量的方法,server,process,pid,hp-ux,environ,Server,Process,Pid,Hp Ux,Environ,我想知道从pid中获取HPUX中环境变量的方法 通过ps命令、文件或编程 有可能得到变量 # /proc/$pid/environ in environ or ps e -ww -p $pid in linux # ps ewww pid in aix # pargs in solaris HP-UX:使用gdb跟踪,但服务器(HPUX)上没有gdb,无法安装 请让我知道。如果您可以在此主机上安装软件,最新的补丁程序应为您提供pargs(1)命令: [ hp-ux_ia64 sw ] $ /

我想知道从pid中获取HPUX中环境变量的方法 通过ps命令、文件或编程

有可能得到变量

# /proc/$pid/environ in environ  or ps e -ww -p $pid in linux
# ps ewww pid in aix
# pargs in solaris
HP-UX:使用gdb跟踪,但服务器(HPUX)上没有gdb,无法安装


请让我知道。

如果您可以在此主机上安装软件,最新的补丁程序应为您提供
pargs(1)
命令:

[ hp-ux_ia64 sw ] $ /usr/ccs/bin/pargs -v
HP pstack/pldd/pargs version B.12.67 for HP Itanium(R) Systems.
[ hp-ux_ia64 sw ] $ /usr/ccs/bin/pargs -h

        usage:  pargs [-h] [-v] {-a pid | -e pid}

        Given the pid of a running process, pargs prints process arguments and all
        environment variables and its values.
        pargs works by attaching to the process to read its memory.
[ hp-ux_ia64 sw ] $ ps -fu ranga
     UID   PID  PPID  C    STIME TTY       TIME COMMAND
 ranga  9949  9923  0  Mar 17  pts/3     0:00 /usr/bin/sh /home/ranga/bin/tmux
 ranga 16795 10007  0 10:40:06 pts/7     0:00 ssh hp-ux_ia64
 ranga  9952  9949  0  Mar 17  pts/3     0:00 tmux
 ranga 16538 16376  1 21:35:16 pts/4     0:00 ps -fu ranga
 ranga  9918  9916  0  Mar 17  ?         0:04 sshd: ranga@pts/3
 ranga  9954     1  2  Mar 17  ?         1:15 tmux
[ hp-ux_ia64 sw ] $ PHSS_44731/C-MIN/usr/ccs/bin/pargs -e 9949
SOCKS_CONF=/home/ranga/etc/socks.conf
MAIL=/var/mail/ranga
PATH=/usr/bin:/usr/ccs/bin:/usr/contrib/bin:/opt/langtools/bin:/usr/local/bin
PWD=/home/ranga
EDITOR=vim
TZ=IST-5:30
ERASE=^H
PS1=[ \h \W ] \$
SHLVL=1
SHELL=/usr/bin/bash
SFTP_PERMIT_CHMOD=1
HOME=/home/ranga
TERMINFO=/home/ranga/lib/terminfo
LOGNAME=ranga
SSH_CONNECTION=1.4.5.1 44584 1.2.2.2 22
SSH_CLIENT=1.1.0.6 44584 22
SHLIB_PATH=/home/ranga/local/lib
SFTP_UMASK=
_=/home/ranga/bin/tmux
USER=ranga
TERM=rxvt-256color
SOCKS5_SERVER=socks-server.ranga.com
LINES=70
即使您无法安装修补程序,也可以从中提取并使用
pargs
可执行文件

如果可以将文件复制出此主机,则可以

  • 用于生成流程的核心文件
  • 复制此核心文件以及可执行文件和的相应版本 libc(32位或64位,使用pldd(1)确认)到环境 哪里有gdb
  • 使用gdb侵入_envp字符串表

    [ hp-ux-ia64 ~ ] $ ps -f
         UID   PID  PPID  C    STIME TTY       TIME COMMAND
     ranga    5779  4411  0 13:12:47 pts/0     0:00 ps -f
     ranga    4411  4403  0 12:45:42 pts/0     0:00 -bash
    [ hp-ux-ia64 ~ ] $ pldd 4411
    4411:   /usr/bin/bash
    /usr/bin/bash
    /usr/lib/hpux32/dld.so
    /usr/local/lib/hpux32/libtermcap.so
    /usr/local/lib/hpux32/libintl.so
    /usr/local/lib/hpux32/libiconv.so
    /usr/lib/hpux32/libdl.so.1
    /usr/lib/hpux32/libc.so.1
    [ hp-ux-ia64 ~ ] $ gcore 4411
    [ hp-ux-ia64 ~ ] $ gdb -q /usr/bin/bash core.4411
    
    warning: Load module /usr/bin/bash has been stripped.
    Debugging information is not available.
    
    (no debugging symbols found)...Core was generated by `bash'.
    
    (no debugging symbols found)...
    warning: Load module /usr/local/lib/hpux32/libtermcap.so has been stripped.
    Debugging information is not available.
    
    (no debugging symbols found)...
    #0  0x60000000c05660f0:0 in _waitpid_sys+0x30 () from /usr/lib/hpux32/libc.so.1
    (gdb) x/s *(char**)__envp
    0x200000007ffffeae:      "USER=ranga"
    (gdb)                           
    :                             
    0x200000007fffff45:      "SSH_CLIENT=3.3.3.3 50072 22"
    :
    0x200000007fffffe4:      "SFTP_PERMIT_CHOWN=1"
    (gdb)
    0x200000007ffffff8:      ""
    

您是否尝试过
ps-fp-PID
在usnig“ps-fp-PID”中检查环境变量时没有输出?我急切地想找到没有gcore和gdb的方法