Как убрать зомби процессы в Linux — находим родителя

Очень важно находить и очищать старые файлы, которые больше не нужны через определенный промежуток времени.

Команды Linux для навигации в терминале

  1. &&. Строго говоря, это не команда. Если вы хотите выполнить сразу несколько команд, поставьте между ними двойной амперсанд вот так: первая_команда && вторая_команда. Терминал выполнит команды по порядку. Вы можете ввести столько команд, сколько захотите.
  2. alias. Присваивает созданные вами названия длинным командам, которые вы не можете запомнить. Введите alias длинная_команда короткая_команда.
  3. cd. Изменяет текущую терминальную папку. Когда вы запускаете терминал, он использует вашу домашнюю папку. Введите cd адрес_папки, и терминал будет работать с файлами, которые там находятся.
  4. clear. Очищает окно терминала от всех сообщений.
  5. history. Отображает все недавно введённые вами команды. Кроме того, вы можете переключаться между недавними командами с помощью клавиш «Вверх» и «Вниз». Если вы не хотите, чтобы введённая вами команда была записана, поставьте перед ней пробел так: ваша_команда.
  6. man. Отображает руководство по программам и командам Linux. Введите man имя_пакетаили man ваша_команда.
  7. whatis. Отображает краткое описание какой-либо программы. Введите команду и название программы whatis имя_пакета.
Команды Linux для навигации в терминале

Найти и удалить файлы старше X дней в Linux

Отказ от ответственности: вы должны быть очень осторожны при выполнении этих команд.

Эти команды не запрашивают подтверждения перед удалением файлов.

Он просто удалит файлы после нажатия клавиши ENTER. Так что будьте очень осторожны!

Сначала давайте узнаем файлы старше X дней, например 30 дней.

Чтобы сделать так, просто:

Читайте также:  2 способа — как соединить два компьютера между собой

find . -mtime +30 -print

Вышеупомянутая команда найдет и отобразит старые файлы старше 30 дней. Вот,

dot (.) – Представляет текущий каталог. -mtime – представляет время изменения файла и используется для поиска файлов старше 30 дней. -print – отображает старые файлы

Если вы хотите искать файлы в определенном каталоге, просто замените точку на путь папки.

Например, чтобы узнать файлы, которые старше 30 дней в каталоге / home / sk / Downloads, просто запустите:

find / home / sk / Downloads -mtime +30 -print

Пример вывода:

Найти и удалить файлы старше X дней в Linux

/home/sk/Pictures/Wallpapers /home/sk/Pictures/Wallpapers/29312450971_819c502b2e_ /home/sk/Pictures/Wallpapers/ /home/sk/Pictures/Deepin Movie /home/sk/Pictures/smplayer_screenshots sksk_001

Теперь, чтобы удалить файлы, запустите любую из следующих команд.

Снова предупреждаю вас, что эти команды будут удалять файлы сразу после нажатия кнопки ENTER.

Перед выполнением этих команд будьте осторожны и дважды проверьте их.

find <Path_To_Old_Files> -type f -mtime +30 | xargs rm -f

или

find <Path_To_Old_Files> -mtime +30 -exec rm -f {} \;

или

find <Path_To_Old_Files> -mtime +30 -delete;

Периодически удаляйте старые файлы, если они не нужны через регулярные промежутки времени, или резервируют их на любые внешние диски и освобождают место на диске.

Вы можете использовать свободное пространство для любых других полезных целей.

Поделитесь статьей:

Опасности зомби-процессов

Зомби-процессы не используют никаких системных ресурсов. (На самом деле каждый использует очень маленький объем системной памяти для хранения своего дескриптора процесса.) Однако каждый процесс-зомби сохраняет свой идентификатор процесса (PID). Системы Linux имеют конечное число идентификаторов процессов — 32767 по умолчанию в 32-разрядных системах. Если зомби накапливаются с очень высокой скоростью — например, если неправильно запрограммированное серверное программное обеспечение создает процессы зомби под нагрузкой — весь пул доступных PID в конечном итоге будет назначен процессам зомби, предотвращая запуск других процессов.

Тем не менее, некоторые процессы, связанные с зомби, не являются проблемой — хотя они указывают на ошибку с родительским процессом в вашей системе.

Удаление старых Kernels через DPKG

В этом примере вы сможете удалить старые ядра (kernel) через утилиту DPKG:

Получите список всех ядер за исключением текущего загруженного:

sudo dpkg -l | tail -n +6 | grep -E ‘linux-image-[0-9]+’ | grep -Fv $(uname -r)

Пример вывода команды:

rc amd64 Signed kernel image generic rc amd64 Signed kernel image generic rc amd64 Signed kernel image generic

В данном выводе может быть 3 статуса образов ядер:

  • rc — означает, что ядро уже удалено.
  • ii — означает, что ядро установлено и может быть удалено.
  • iU — ЭТО НЕЛЬЗЯ УДАЛЯТЬ. Это означает, что ядро не установлено, но требуется его установка в apt.

Хотя в примере стоит значение rc, но все же данный список раздражает. Давайте удалим старые ядра вручную, для этого набираем вот такую команду:

sudo dpkg —purge

Так же попробуйте удалить пакеты со значение ii заголовочных файлов для старых ядер (Если команда выводит ошибки можете не обращать на это внимание):

Нужно ли указывать дефис перед опциями ps

В некоторых примерах вы можете увидеть использование ps с опциями без дефиса или с длинными вариантами написания опций в стиле GNU. Для совместимости, ps поддерживает все три формата. Опции без дефиса — это стиль BSD и значение опций с дефисом и без может быть различным!

Пример показа процессов в формате BSD:

ps au # ИЛИ ps axu

В этой команде значение опций следующее:

  • u — ориентированный на пользователя формат
  • a — убирает ограничение «только свои процессы»
  • x — убирает ограничение «только процессы с терминалом»

Проще говоря, если использовать вместе a и x, то будут показаны все процессы.

Нужно быть аккуратным, и не забывать ставить дефис если вы используете опции UNIX, поскольку в случае неопределённости ps будет пытаться трактовать в разных вариантах. В этой инструкции кроме рассмотренного примера везде используются опции UNIX.