1

Если я запускаю команду ps или top, они только перечисляют процессы или они перечисляют как службы, так и процессы? Как вы определяете, представляет ли данная строка процесс или службу?

2 ответа2

2

Сервисы являются процессами, так что да, оба перечислены по пс. Они просто не различаются четко. Сервис - это процесс, который прослушивает запросы или соединения.

Вы можете использовать netstat для отображения процессов, которые прослушивают (и, следовательно, являются частью службы)

2

Прежде всего, термин сервис редко используется в среде 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 , вы сможете четко различать демоны и пользовательские процессы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .