пример получения информации о процессах в gnu/linux
пример получения информации о процессах в gnu/linux
сначала посмотрим какие службы работают
☯
Terminal:
⌕
≡
✕
mx@192:~$ sudo service --status-all [sudo] password for mx: [ - ] alsa-utils [ - ] anacron [ - ] apache-htcacheclean [ + ] apache2 [ + ] apparmor [ + ] avahi-daemon [ - ] console-setup.sh [ + ] cron [ + ] cups [ + ] cups-browsed [ + ] dbus [ + ] hddtemp [ - ] hwclock.sh [ - ] keyboard-setup.sh [ + ] kmod [ + ] lightdm [ + ] lm-sensors [ + ] networking [ - ] plymouth [ + ] plymouth-log [ + ] postgresql [ + ] procps [ - ] pulseaudio-enable-autospawn [ - ] qemu-guest-agent [ + ] rsyslog [ - ] saned [ - ] speech-dispatcher [ - ] spice-vdagent [ + ] ssh [ - ] sudo [ - ] sysstat [ + ] udev [ - ] x11-common
Теперь посмотрим на процессы.
Итак начнём сначала, мы получили названия запущенных процессов с номерами
☯
Terminal:
⌕
≡
✕
mx@192:~$ sudo lsof -i -P -n COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME avahi-dae 456 avahi 12u IPv4 10852 0t0 UDP *:5353 avahi-dae 456 avahi 13u IPv6 10853 0t0 UDP *:5353 avahi-dae 456 avahi 14u IPv4 10854 0t0 UDP *:57651 avahi-dae 456 avahi 15u IPv6 10855 0t0 UDP *:60511 NetworkMa 459 root 23u IPv4 14567 0t0 UDP 192.168.122.110:68->192.168.122.1:67 sshd 550 root 3u IPv4 11090 0t0 TCP *:22 (LISTEN) sshd 550 root 4u IPv6 11092 0t0 TCP *:22 (LISTEN) postgres 615 postgres 5u IPv6 11229 0t0 TCP [::1]:5432 (LISTEN) postgres 615 postgres 6u IPv4 11230 0t0 TCP 127.0.0.1:5432 (LISTEN) postgres 615 postgres 8u IPv6 13035 0t0 UDP [::1]:40138->[::1]:40138 apache2 621 root 3u IPv6 12214 0t0 TCP *:80 (LISTEN) apache2 621 root 4u IPv6 12217 0t0 TCP *:82 (LISTEN) apache2 647 www-data 3u IPv6 12214 0t0 TCP *:80 (LISTEN) apache2 647 www-data 4u IPv6 12217 0t0 TCP *:82 (LISTEN) apache2 648 www-data 3u IPv6 12214 0t0 TCP *:80 (LISTEN) apache2 648 www-data 4u IPv6 12217 0t0 TCP *:82 (LISTEN) apache2 649 www-data 3u IPv6 12214 0t0 TCP *:80 (LISTEN) apache2 649 www-data 4u IPv6 12217 0t0 TCP *:82 (LISTEN) apache2 650 www-data 3u IPv6 12214 0t0 TCP *:80 (LISTEN) apache2 650 www-data 4u IPv6 12217 0t0 TCP *:82 (LISTEN) apache2 651 www-data 3u IPv6 12214 0t0 TCP *:80 (LISTEN) apache2 651 www-data 4u IPv6 12217 0t0 TCP *:82 (LISTEN) postgres 670 postgres 8u IPv6 13035 0t0 UDP [::1]:40138->[::1]:40138 postgres 671 postgres 8u IPv6 13035 0t0 UDP [::1]:40138->[::1]:40138 postgres 672 postgres 8u IPv6 13035 0t0 UDP [::1]:40138->[::1]:40138 postgres 673 postgres 8u IPv6 13035 0t0 UDP [::1]:40138->[::1]:40138 postgres 674 postgres 8u IPv6 13035 0t0 UDP [::1]:40138->[::1]:40138 postgres 675 postgres 8u IPv6 13035 0t0 UDP [::1]:40138->[::1]:40138 cupsd 1693 root 6u IPv6 23754 0t0 TCP [::1]:631 (LISTEN) cupsd 1693 root 7u IPv4 23755 0t0 TCP 127.0.0.1:631 (LISTEN) cups-brow 1695 root 7u IPv4 21456 0t0 UDP *:631 sshd 13465 root 4u IPv4 106001 0t0 TCP 192.168.122.110:22->192.168.122.1:46648 (ESTABLISHED) sshd 13497 mx 4u IPv4 106001 0t0 TCP 192.168.122.110:22->192.168.122.1:46648 (ESTABLISHED) rustdesk 112010 root 13u IPv4 830456 0t0 UDP *:21119 rustdesk 112010 root 18u IPv4 831978 0t0 UDP *:57545 rustdesk 112010 root 23u IPv4 833913 0t0 UDP *:42548 rustdesk 112010 root 25u IPv4 834945 0t0 UDP *:53460
если сравнить эти два вывода, то становится ясно, что называние процесса не всегда совпадает с полным названием программы, например в первом случае, postgresql и postgres при выводе процессов... Для проверки текущего статуса, остановки и запуска службы, нужно полное имя. Для этого познакомимся сразу и с
посмотрим в этот каталог командой
☯
Terminal:
⌕
≡
✕
mx@192:~$ ls /proc 1 13488 141 1695 26 39 459 6 66 72 8 acpi driver keys mtrr sys 10 13490 141032 17 261 4 462 615 67 73 82 asound dynamic_debug key-users net sysrq-trigger 108 13493 142 18 27 40 463 621 670 741 822 buddyinfo execdomains kmsg pagetypeinfo sysvipc 11 13497 143 189 28 41 464 63 671 747 840 bus fb kpagecgroup partitions thread-self 110899 13498 144 190 3 413 465 64 672 748 845 cgroups filesystems kpagecount pressure timer_list 112010 135098 145 2 30 42 466 646 673 762 847 cmdline fs kpageflags sched_debug tty 12 136 149 20 33403 43 467 647 674 763 85 consoles interrupts loadavg schedstat uptime 13 137997 15 21 35 45 498 648 675 764 86 cpuinfo iomem locks self version 13465 138052 152 22 359 450 523 649 68 766 869 crypto ioports meminfo slabinfo vmallocinfo 13471 14 16 23 36 456 548 65 69 78159 873 devices irq misc softirqs vmstat 13472 140486 1693 231 37 457 549 650 70 78431 9 diskstats kallsyms modules stat zoneinfo 13487 140940 1694 25 38 458 550 651 71 798 94797 dma kcore mounts swaps
каталоги с именами в виде чисел это и есть pid процессов, которые мы уже видели. Поэтому каждый может получить доступ ко всем каталогам /proc/[pid].
далее посмотрим в интересующий нас процесс допустим, процесс postgres с номером pid = 670 который мы узнали первой командой.
значит
но имейте ввиду, что некоторую информацию можно будет получить, обладая правами суперпользователя, т.е. добавляя sudo перед командой.
☯
Terminal:
⌕
≡
✕
mx@192:~$ ls /proc/670 ls: cannot read symbolic link '/proc/670/cwd': Permission denied ls: cannot read symbolic link '/proc/670/root': Permission denied ls: cannot read symbolic link '/proc/670/exe': Permission denied arch_status cmdline environ limits mounts oom_score root smaps_rollup task attr comm exe loginuid mountstats oom_score_adj sched stack timens_offsets autogroup coredump_filter fd map_files net pagemap schedstat stat timers auxv cpu_resctrl_groups fdinfo maps ns patch_state sessionid statm timerslack_ns cgroup cpuset gid_map mem numa_maps personality setgroups status uid_map clear_refs cwd io mountinfo oom_adj projid_map smaps syscall wchan
видим список каталогов и файлов, далее посмотрим содержимое файла
☯
Terminal:
⌕
≡
✕
mx@192:~$ cat /proc/670/cgroup 0::/system.slice/system-postgresql.slice/postgresql@13-main.service
теперь мы видим имя postgresql@13-main.service допустим в системах с инициализацией systemd мы можем узнать о статусе этой программа следующей командой
в системах с инициализацией например sysinit мы можем узнать о статусе этой программа следующей командой
☯
Terminal:
⌕
≡
✕
mx@192:~$ sudo systemctl status postgresql@13-main.service
[sudo] password for mx:
● postgresql@13-main.service - PostgreSQL Cluster 13-main
Loaded: loaded (/lib/systemd/system/postgresql@.service; enabled-runtime; vendor preset: enabled)
Active: active (running) since Sat 2022-12-31 00:20:49 CST; 4h 25min ago
Process: 509 ExecStart=/usr/bin/pg_ctlcluster --skip-systemctl-redirect 13-main start (code=exited, status=0/SUCCESS)
Main PID: 615 (postgres)
Tasks: 7 (limit: 4661)
Memory: 36.1M
CPU: 6.194s
CGroup: /system.slice/system-postgresql.slice/postgresql@13-main.service
├─615 /usr/lib/postgresql/13/bin/postgres -D /var/lib/postgresql/13/main -c config_file=/etc/postgresql/13/main/postgresql.c>
├─670 postgres: 13/main: checkpointer
├─671 postgres: 13/main: background writer
├─672 postgres: 13/main: walwriter
├─673 postgres: 13/main: autovacuum launcher
├─674 postgres: 13/main: stats collector
└─675 postgres: 13/main: logical replication launcher
Dec 31 00:20:46 192 systemd[1]: Starting PostgreSQL Cluster 13-main...
Dec 31 00:20:49 192 systemd[1]: Started PostgreSQL Cluster 13-main.
видим служба активна active (running)
-
- Roman Sakhno
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.