Дерево процессов
Во время работы процесса попробуйте использовать ps
с параметром f
, чтобы увидеть иерархия процессов:
ps axuf
Затем вы должны получить дерево процессов, то есть вы должны увидеть родительский процесс gzip
.
Если gzip
является прямым потомком init
, то, вероятно, его родитель уже завершил работу, поскольку очень маловероятно, что init
создаст gzip
процесс.
Crontabs
Кроме того, вы должны проверить свои crontab
, чтобы увидеть, есть ли что-нибудь, создающее его. Выполните sudo crontab -l -u
, где пользователь
является пользователем наблюдаемого вами процесса gzip
(в вашем случае это похоже на корень
).
Если у вас есть другие пользователи в этой системе, которые, возможно, занимались настройкой фоновых служб, проверьте также их crontab
.Тот факт, что gzip
запускается от имени root
, не гарантирует, что исходный процесс, запустивший gzip
, также был запущен от имени root
. Вы можете увидеть список всех существующих crontab
, выполнив sudo ls / var / spool / cron / crontabs
.
Журналы
Проверьте все имеющиеся у вас системные журналы на предмет подозрительных записей во время создания процесса. Я не уверен, называет ли Kubuntu свои файлы журналов по-другому, но в стандартном Ubuntu вы должны хотя бы проверить / var / log / syslog
.
Последний выбор: обертка gzip
Если ничего из этого не привело ни к какому результату, вы можете переименовать свой двоичный файл gzip
и установить небольшую оболочку, которая запускает gzip
с переданные параметры, но также фиксирует состояние системы в этот момент.
awk 'BEGIN{count = 0} {if($6 == "MALE") {count+=1; print $2}} END{print count}'
То есть создать блок для подсчета и печати имени, который выполняется, если испытуемый мужчина.
В ответ на ответ Дж.Р.Фергюсона вот что у вас есть, с отступом:
# count the number of males, and print every name
if($6 == "MALE")
count+=1
print $2
А это ответ JRFergusons с отступом
# count and print only the males
if($6 == "MALE") {
count+=1
print $2
}
Awk использует ту же семантику скобок, что и C
Способ awk
сделать это будет
awk '$NF == "MALE" { ++count; print $2 } END { print count }' file
То есть вы указываете количество блоков и соответствующие условия запуска. Условием увеличения count
и вывода $2
является то, что значением последнего поля($NF
)является строка MALE
. Условие для печати count
состоит в том, что у нас больше нет входных данных.
Вы могли бы сделать это и с if
утверждением:
awk '{ if ($NF == "MALE") { ++count; print $2 } } END { print count }' file
(обратите внимание на дополнительный набор фигурных скобок в первом блоке; тело оператора if
в противном случае было бы только следующим одиночным оператором ), но программа быстро становится трудной для чтения, и поскольку условие $NF == "MALE"
применяется ко всему коду в этом блоке, мы можем а также полностью вывести его из блока.