Если я запускаю команду ps или top, они только перечисляют процессы или они перечисляют как службы, так и процессы? Как вы определяете, представляет ли данная строка процесс или службу?
2 ответа
Сервисы являются процессами, так что да, оба перечислены по пс. Они просто не различаются четко. Сервис - это процесс, который прослушивает запросы или соединения.
Вы можете использовать netstat для отображения процессов, которые прослушивают (и, следовательно, являются частью службы)
Прежде всего, термин сервис редко используется в среде Linux. Более распространенным является термин « демон».
Хотя оба термина описывают один и тот же тип приложения, термин « служба» имеет некоторые свойства, связанные с его использованием в среде Windows.
Что отличает демона от обычного процесса, так это то, что демон является фоновым процессом и с ним не взаимодействует пользователь. Но самое главное, что термин « демон» - это просто термин. Насколько мне известно, в Linux нет флага, который бы сказал: « Этот процесс - демон ».
Так что демоны не являются чем-то особенным. Мы просто называем определенный тип программы демоном.
Вот также почему ps
или top
не делают различий.
Но если вы хотите знать, какой из запущенных в данный момент процессов наиболее вероятен для мышления о демоне , попробуйте ps axjf
:
oliver@ubuntuServer:~$ ps axjf
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
0 2 0 0 ? -1 S 0 0:00 [kthreadd]
2 3 0 0 ? -1 S 0 0:01 \_ [ksoftirqd/0]
2 5 0 0 ? -1 S 0 0:00 \_ [kworker/u:0]
2 6 0 0 ? -1 S 0 0:00 \_ [migration/0]
2 7 0 0 ? -1 S 0 0:00 \_ [migration/1]
2 9 0 0 ? -1 S 0 0:00 \_ [ksoftirqd/1]
2 10 0 0 ? -1 S 0 0:09 \_ [kworker/0:1]
2 11 0 0 ? -1 S 0 0:00 \_ [migration/2]
2 12 0 0 ? -1 S 0 0:00 \_ [kworker/2:0]
2 13 0 0 ? -1 S 0 0:00 \_ [ksoftirqd/2]
2 14 0 0 ? -1 S 0 0:00 \_ [migration/3]
2 15 0 0 ? -1 S 0 0:00 \_ [kworker/3:0]
2 16 0 0 ? -1 S 0 0:00 \_ [ksoftirqd/3]
2 17 0 0 ? -1 S< 0 0:00 \_ [cpuset]
2 18 0 0 ? -1 S< 0 0:00 \_ [khelper]
2 19 0 0 ? -1 S< 0 0:00 \_ [netns]
2 20 0 0 ? -1 S 0 0:00 \_ [kworker/u:1]
2 21 0 0 ? -1 S 0 0:00 \_ [sync_supers]
2 22 0 0 ? -1 S 0 0:00 \_ [bdi-default]
2 23 0 0 ? -1 S< 0 0:00 \_ [kintegrityd]
2 24 0 0 ? -1 S< 0 0:00 \_ [kblockd]
2 25 0 0 ? -1 S< 0 0:00 \_ [ata_sff]
2 26 0 0 ? -1 S 0 0:00 \_ [khubd]
2 27 0 0 ? -1 S< 0 0:00 \_ [md]
2 28 0 0 ? -1 S 0 0:00 \_ [khungtaskd]
2 29 0 0 ? -1 S 0 0:00 \_ [kworker/3:1]
2 30 0 0 ? -1 S 0 0:03 \_ [kswapd0]
2 31 0 0 ? -1 SN 0 0:00 \_ [ksmd]
2 32 0 0 ? -1 SN 0 0:00 \_ [khugepaged]
2 33 0 0 ? -1 S 0 0:00 \_ [fsnotify_mark]
2 34 0 0 ? -1 S 0 0:00 \_ [ecryptfs-kthrea]
2 35 0 0 ? -1 S< 0 0:00 \_ [crypto]
2 43 0 0 ? -1 S< 0 0:00 \_ [kthrotld]
2 44 0 0 ? -1 S 0 0:00 \_ [scsi_eh_0]
2 45 0 0 ? -1 S 0 0:00 \_ [scsi_eh_1]
2 67 0 0 ? -1 S 0 0:00 \_ [kworker/1:1]
2 68 0 0 ? -1 S 0 0:09 \_ [kworker/0:2]
2 110 0 0 ? -1 S 0 0:00 \_ [kworker/1:2]
2 190 0 0 ? -1 S 0 0:00 \_ [scsi_eh_2]
2 208 0 0 ? -1 S 0 0:00 \_ [kworker/2:1]
2 218 0 0 ? -1 S< 0 0:00 \_ [kdmflush]
2 235 0 0 ? -1 S< 0 0:00 \_ [kdmflush]
2 243 0 0 ? -1 S 0 0:13 \_ [jbd2/dm-0-8]
2 244 0 0 ? -1 S< 0 0:00 \_ [ext4-dio-unwrit]
2 508 0 0 ? -1 S< 0 0:00 \_ [kpsmoused]
2 20477 0 0 ? -1 S 0 0:00 \_ [flush-252:0]
0 1 1 1 ? -1 Ss 0 0:00 /sbin/init
1 303 302 302 ? -1 S 0 0:00 upstart-udev-bridge --daemon
1 306 306 306 ? -1 Ss 0 0:00 udevd --daemon
306 438 306 306 ? -1 S 0 0:00 \_ udevd --daemon
306 445 306 306 ? -1 S 0 0:00 \_ udevd --daemon
1 562 541 541 ? -1 Sl 101 0:04 rsyslogd -c5
1 600 599 599 ? -1 S 0 0:00 upstart-socket-bridge --daemon
1 612 612 612 ? -1 Ss 102 0:00 dbus-daemon --system --fork --activation=upstart
Это часть результатов относительно новой установки сервера Ubuntu. Вывод должен быть иерархическим, что должно упростить идентификацию системных процессов.
Как и в этой части того же вывода ps
. Вы можете ясно видеть, что цепочка началась с sshd
(демон SSH), в который я вошел и создал сеанс пользователя для себя. В этом, bash
был запущен, и в bash у меня есть фоновый процесс vi
и мой ps
я только что выполнил.
8053 20352 20352 20352 ? -1 Ss 0 0:00 \_ sshd: oliver [priv]
20352 20378 20352 20352 ? -1 S 1000 0:00 \_ sshd: oliver@pts/0
20378 20379 20379 20379 pts/0 20570 Ss 1000 0:00 \_ -bash
20379 20569 20569 20379 pts/0 20570 T 1000 0:00 \_ vi
20379 20570 20570 20379 pts/0 20570 R+ 1000 0:00 \_ ps axjf
Итак, взглянув на эти две части вывода ps
, вы сможете четко различать демоны и пользовательские процессы.