- 论坛徽章:
- 0
|
请问,如何根据端口号查出程序的进程号?
用以下脚本:\r\n\r\n#! /bin/sh\r\n# find_socket_proc.sh for x86/SPARC Solaris 8\r\n\r\n#\r\n# File : find_socket_proc.sh\r\n# Author : Vitaly Filatov\r\n# Fix : scz\r\n# Platform : x86/SPARC Solaris 8\r\n# Version : 1.00 aleph\r\n# Usage :\r\n# Date : 2001-10-28 00:32\r\n# Modify :\r\n#\r\n\r\nPLATFORM=\"`uname -p`\"\r\nif [ \"${PLATFORM}\" = \"sparc\" ] ; then\r\n PREFIX=\"\"\r\nelif [ \"${PLATFORM}\" = \"i386\" ] ; then\r\n PREFIX=\"/usr\"\r\nfi\r\n\r\nEGREP=\"${PREFIX}/bin/egrep\"\r\nNAWK=\"${PREFIX}/bin/nawk\"\r\nPFILES=\"/usr/proc/bin/pfiles\"\r\nPS=\"${PREFIX}/bin/ps\"\r\nSED=\"${PREFIX}/bin/sed\"\r\n\r\nPROCLIST=\"`${PS} -ef | ${NAWK} \'NR >; 1 {print $2}\'`\"\r\n\r\nfor PID in ${PROCLIST} ; do\r\n if [ -n \"`${PFILES} ${PID} 2>;/dev/null | ${EGREP} S_IFSOCK`\" ] ; then\r\n LINE_1=\"`${PS} -o pid,args -p ${PID} | ${NAWK} \'NR >; 1 {print $0}\'`\"\r\n PORTLIST=\"`${PFILES} ${PID} 2>;/dev/null | ${EGREP} \'sockname:\' | \\\r\n ${SED} -e \'s/.*port: \\(.*\\)/\\1/g\'`\"\r\n for PORT in ${PORTLIST} ; do\r\n echo \"${LINE_1} port-->;${PORT}\"\r\n done\r\n fi\r\ndone\r\n\r\n\r\n--------------------------------------------------------------------------\r\n\r\n如果你以普通用户身份运行,只能检查自己的进程,如果以root身份运行,可以检查所有用户的进程。 |
|