У меня есть сервер 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
создал несколько подпроцессов. Я хочу знать, кто / какой другой процесс / сценарий инициирует это.
Есть ли в Solaris какая-либо команда, которая может дать мне более подробную информацию о процессе?
Я пытался сделать lsof
в файле PID, но я предполагаю, что он не работает в 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 из предыдущей команды.