Операционные системы на базе Linux, как и все другие операционные системы, имеют процессы и службы, которые запускаются во время работы машины. Они варьируются от различных служб операционной системы до командной строки до разных сервисов/демонов, предназначенных для поддержки системы и бесперебойной работы. Большинство сервисов имеют жизненно важное значение для нормальной работы процесса, начиная от вспомогательных сервисов и заканчивая специальными службами, предназначенными для обработки ввода, повышения производительности, ресурсов для разгрузки и т. д. Процессы также являются основой основных функций компьютера, что делает важным иметь ресурсы для всех.
Однако может случиться так, что служба может работать без вашего ведома, использовать системные ресурсы и даже сделать вашу систему уязвимой, если меры безопасности не были приняты во внимание. Из-за возможных случаев, подобных этим, хорошо знать, как проверять и обрабатывать такие случаи, а также иметь возможность отслеживать, какие процессы и службы выполняются на вашем компьютере в любой момент.
В этой статье мы рассмотрим несколько способов перечисления/отображения всех запущенных служб и процессов на сервере или машине на базе Linux, а также рассмотрим некоторые полезные команды, которые помогут вам находить и управлять этими процессами и службами.
Инструмент командной строки ‘service’
Команда «service» поставляется с предустановленной почти с каждым дистрибутивом Linux. Хотя основной целью является запуск и остановка сценариев и создание процессов, «service» также может использоваться для просмотра того, какие службы запущены или остановлены в любой момент. Используя простую команду, нам предоставляется полный список услуг:
service --status-all
Когда вы запустите это, появится такой же результат:
[ + ] apache-htcacheclean [ + ] apache2 [ + ] apparmor [ + ] bind9 [ - ] bluetooth [ - ] bootmisc.sh [ - ] cgmanager [ - ] cgproxy [ - ] checkfs.sh [ - ] checkroot-bootclean.sh [ - ] checkroot.sh (continued)
Как вы можете видеть, список услуг предоставляется в виде вывода с символом слева от имени службы. Символ «+» означает, что служба запущена, «-» означает, что она остановлена, а «?» означает, что статус в настоящее время не известен. Когда это используется в сочетании с инструментом поиска, таким как «grep», найти определенные сервисы, которые выполняются, очень легко сделать. Затем вы можете проверить статус на основе процесса, введя команду статуса для определенного процесса:
service <service name> status
Затем он выдает набор информации, относящейся к этой конкретной службе, включая местоположение процесса, независимо от того, работает ли служба или даже последние несколько строк файла журнала из службы.
PS
PS – это предустановленная утилита, предназначенная для отображения информации и сведений о процессах. Это простой, быстрый инструмент, предназначенный для быстрого получения результатов без суеты. С помощью одной простой команды мы можем перечислить подробный список текущих запущенных процессов:
ps -aux
Вы можете использовать это в сочетании с командой «меньше» для дальнейшего улучшения удобочитаемости. При выполнении этой команды нам дается подробная информация о каждом запущенном процессе. Вы также можете использовать команду grep, чтобы сузить результаты до определенного имени процесса, идентификатора процесса и т. д.
Инструмент командной строки ‘top’
«top» – это встроенный инструмент, предназначенный для обзора всех процессов и служб, выполняемых в настоящее время на вашем компьютере. Он включен в дистрибутивы на основе Debian и RedHat и предлагает множество функций, которые помогут вам понять, что происходит на вашем сервере. Вы можете начать «сверху», просто нарисуя верхнюю часть в командной строке. Вот как это должно выглядеть:
top - 03:29:24 up 53 min, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 58 total, 1 running, 57 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 2097152 total, 1025376 free, 504424 used, 567352 buff/cache KiB Swap: 0 total, 0 free, 0 used. 1485816 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1073 root 20 0 128404 1672 888 S 0.3 0.1 0:00.45 screen 3160 root 20 0 157900 2156 1516 R 0.3 0.1 0:00.06 top 1 root 20 0 129484 3716 2412 S 0.0 0.2 0:03.03 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd/2306 3 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper/2306 57 root 20 0 39176 2816 2492 S 0.0 0.1 0:00.53 systemd-journal 63 root 20 0 42624 1740 1292 S 0.0 0.1 0:00.01 systemd-udevd (continued)
Он может выглядеть немного загроможденным, но большая часть этой информации очень полезна. Например, мы можем видеть, как долго работала система, средняя загрузка, сколько пользователей вошли в систему, сколько процессов (задач) работает, спать и т. д., А также информацию об объеме памяти, который у нас есть и доступны на сервере. Top становится еще более подробно, вплоть до уровня, специфичного для процесса. В каждом столбце отображается определенное значение, которое коррелирует с процессом, который выполняется. Мы можем видеть, кто владеет процессом, сколько памяти он использует, сколько используется процессор, имя команды и идентификатор процесса, который является уникальным для этого процесса, и помогает нам идентифицировать его, если есть более одного из тот же процесс. Используя всю эту информацию, мы можем точно видеть, что делает каждый процесс, и сколько ресурсов каждый процесс использует,
HTOP
Htop очень похож на «top» с точки зрения его основных функций и функциональности. Обычно он не включен в установку операционной системы по умолчанию, однако он доступен для большинства, если не для всех дистрибутивов Linux, через свои предварительно установленные программные репозитории. Подобно top, htop позволяет пользователю просматривать подробную информацию о каждом процессе, а также следить за самой системой. Тем не менее, htop позволяет намного более точно контролировать отображаемую вами информацию, а также предлагать набор утилит, которые могут применяться к процессам.
Например, через htop вы можете настроить тонкость (приоритет) процесса, убить его с различными уровнями силы и т. д. Существует также сортировка, которая упрощает просмотр только важной для вас информации. Выбор процесса возможен с помощью пробела, что упрощает отслеживание и отслеживание определенного процесса (или процессов, поскольку вы можете выбрать более одного за раз). И с функцией поиска, еще проще проверить и обратить внимание на конкретные процессы. Htop даже имеет гистограмму, которая представляет различные системные ресурсы, позволяя вам легко видеть, сколько выделяется процессор или ОЗУ.
Вот пример того, как выглядит htop:
1 [ 0.0%] Tasks: 35, 113 thr; 1 running 2 [|| 1.3%] Load average: 0.01 0.05 0.01 Mem[||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 799M/2.00G] Uptime: 4 days, 22:53:28 Swp[ 0K/0K] PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command 9357 mysql 20 0 1625M 196M 1944 S 0.7 9.6 4:54.66 /usr/sbin/mysqld 26708 root 20 0 26520 4092 1464 R 0.7 0.2 0:00.66 htop 1 root 20 0 129484 3716 2412 S 0.0 0.2 0:03.03 systemd (continued)
С барами наверху, легко понять, как ваша система работает с одним взглядом, а также настраиваемая подробная информация, доступная под ними.
Используя любой из этих инструментов, вы можете легко найти точную информацию о своих услугах и процессах.