如何查看进程的端口号?
$ netstat -lnp | grep exf
tcp 0 0 0.0.0.0:9101 0.0.0.0:* LISTEN 5791/exfilter
注释:上面命令中的exfilter是进行名称.上面的9101就是监控的端口号,5791是进程的进程id。
如果进程没有像exfilter一样监控一个端口,如何查看进程的id?
ps aux | grep exfilter
root 5791 0.0 2.2 59184 11256 ? Ss 02:11 0:00 ./exfilter/bin/exfilter -f default -d
root 5823 0.0 0.1 61220 732 pts/1 R+ 02:23 0:00 grep exfilter
注释:第一行,第二列的5791就是进程id。第一行的最后列出了启动时的命令和参数。
我怎么知道这个命令的完整路径?命令是谁启动的?在那里目录启动的?
$strings /proc/5791/environ
HOSTNAME=localhost.localdomain
TERM=vt100
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=10.32.232.107 52249 22 #用户客户端ip
SSH_TTY=/dev/pts/1
USER=root #用户名
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:
MAIL=/var/spool/mail/root
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
INPUTRC=/etc/inputrc
PWD=/root/work #启动命令时用户所在路径
LANG=en_US.UTF-8
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
SHLVL=1
HOME=/root
LOGNAME=root
CVS_RSH=ssh
SSH_CONNECTION=10.32.232.107 52249 10.32.232.129 22
PKG_CONFIG_PATH=:/usr/lib/pkgconfig/
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES=1
_=./exfilter/bin/exfilter #启动的命令
OLDPWD=/root
注释:
完整的命令路径可以用
PWD=/root/work #启动命令时用户所在路径
和_=./exfilter/bin/exfilter #启动的命令拼接。
上面完整的路径就是 /root/work/exfilter/bin/exfilter
技术交流