我有一个Solaris服务器,我发现很多sshd服务正在运行:
ps -ef | grep 23492 root 25449 23492 0 15:27:17 ? 0:00 /usr/sbin/sshd2 -oPidFile=/var/run/sshd2_22.pid -R internal_rexec root 25432 23492 0 15:24:32 ? 0:00 /usr/sbin/sshd2 -oPidFile=/var/run/sshd2_22.pid -R internal_rexec root 25350 23492 0 15:14:22 ? 0:00 /usr/sbin/sshd2 -oPidFile=/var/run/sshd2_22.pid -R internal_rexec root 25344 23492 0 15:13:59 ? 0:00 /usr/sbin/sshd2 -oPidFile=/var/run/sshd2_22.pid -R internal_rexec root 25539 23492 0 15:34:42 ? 0:00 /usr/sbin/sshd2 -oPidFile=/var/run/sshd2_22.pid -R internal_rexec root 23492 1 0 11:45:46 ? 0:01 /usr/sbin/sshd2 -oPidFile=/var/run/sshd2_22.pid root 24101 23492 0 13:06:34 ? 0:00 /usr/sbin/sshd2 -oPidFile=/var/run/sshd2_22.pid -R internal_rexec root 25472 23492 0 15:30:38 ? 0:00 /usr/sbin/sshd2 -oPidFile=/var/run/sshd2_22.pid -R internal_rexec
如你所见, PID-23492 /usr/sbin/sshd2已经创build了多个subprocess。 我想知道谁/什么其他进程/脚本正在启动这个。
在Solaris中是否有任何命令可以给我进一步的细节?
我试图在PID文件上做一个lsof ,但是我猜它不适用于Solaris:
[root@e0100damsgmgt01 /var/adm]$ lsof /var/run/sshd2_22.pid ld.so.1: lsof: fatal: libc.so.1: version `SUNW_1.22.5' not found (required by file /opt/csw/bin/amd64/lsof) ld.so.1: lsof: fatal: libc.so.1: open failed: No such file or directory Killed [root@e0100damsgmgt01 /var/adm]$
我的solaris版本:
[root@e0100damsgmgt01 /var/adm]$ uname -a SunOS e0100damsgmgt01 5.10 Generic_137112-07 i86pc i386 i86pc [root@e0100damsgmgt01 /var/adm]$
请帮助。
ps axf
应该给你一个进程树,你会看到在服务器上,其他人是与不同的客户端通信的孩子。 这是正常的行为。
要获得你的程序打开的文件列表,你应该使用
lsof -p $(cat /var/run/sshd2_22.pid)
或者你可以看到每个其他进程的列表,用前面命令中的PID代替$(...) 。