Назад | Перейти на главную страницу

Как отфильтровать системные процессы по умолчанию с помощью ps?

Есть ли способ получить список запущенных процессов в системе Linux за вычетом тех, которые по умолчанию запущены в каждой системе (т.е.только те, которые были установлены / выполнены постфактум). Можно ли это сделать с помощью ps или другого подобного инструмента?

Спасибо

По умолчанию системные процессы вы, вероятно, имеете в виду «демонов», таких как httpd, nfsd и т. Д. Столбец TTY в выводе ps: ? для демонов. Поэтому, чтобы их исключить, вам, вероятно, потребуется написать сценарий для этого в оболочке / perl, в зависимости от того, что вы знаете.

Здесь я предполагаю, что tty - это столбец 2, поэтому в зависимости от результатов вы можете это изменить.

Perl:

#!/usr/bin/perl
use strict;
use warnings;

open (PS,'ps aux |') or die "command can't execute $!";  # Runs command using pipe

while(<PS>){                             # Run through pipe line by line
    my $ttycol=(split) [2];              # get tty column from ps output 

    if($ttycol ne '?'){                  # If col is ? then it's a daemon
        print $_;            # if not print
    }
}
close(PS);

затем просто запустите его как "perl script.pl".

Оболочка:

При участии лежать, то же самое может быть достигнуто в сценарии оболочки как

ps -ef | awk '$6 != "?" {print}'

Я также собираюсь предположить, как и в предыдущем ответе, что вы имеете в виду демонов «по умолчанию», и, следовательно, они будут работать на tty ?. В этом случае следующие должен работать, хотя, к сожалению, я не могу протестировать его здесь, на работе.

ps aux | grep "[:space;]+?[:space:]+"

ps aux предоставляет вам все процессы в системе в стандартном формате BSD, передаваемые по конвейеру grep -v который будет соответствовать всем строкам, НЕ включая строку регулярного выражения ([:space;]+?[:space:]+). Regex ищет любое количество пробелов, за которыми следует один '?' за которым следует любое количество пробелов. (теоретически этому описанию не должно быть ничего, кроме записей в столбце, например tty.)

Быстро, грязно и от относительного новичка, но вот оно.