1. Какие процессы используют Python в Linux
Основные способы:
bash
# Способ 1: Поиск по имени процесса ps aux | grep -E "(python|python3)" # Способ 2: Более точный поиск (только процессы python) pgrep -a python pgrep -a python3 # Способ 3: Через pstree (показывает иерархию) pstree -p | grep -i python # Способ 4: Показать все python процессы с деталями ps -fC python3 # Способ 5: Через htop (интерактивно) # Установите: sudo apt install htop htop # Затем в htop нажмите F3 и введите "python"
Чтобы увидеть путь к Python интерпретатору:
bash
# Увидеть полный путь к исполняемому файлу ps -eo pid,cmd | grep python | grep -v grep # Или более детально: ps -eo pid,args,cmd | grep python
2. Как найти принудительно добавленные в автозагрузку программы
Программы могут автозагружаться через разные механизмы:
A. Системные автозагрузки (systemd)
bash
# Показать все юниты, которые запускаются при загрузке systemctl list-unit-files --state=enabled # Показать только пользовательские юниты systemctl --user list-unit-files --state=enabled # Показать службы, которые запускаются при загрузке systemctl list-units --type=service --state=running # Проверить конкретный сервис sudo systemctl status <service_name>
B. Cron задачи (пользовательские и системные)
bash
# Показать все cron задачи текущего пользователя crontab -l # Показать cron задачи для другого пользователя sudo crontab -u <username> -l # Системные cron задачи ls -la /etc/cron.*/ # Просмотреть содержимое cat /etc/crontab
C. Автозагрузка через профили
bash
# Проверить системные профили ls -la /etc/profile.d/ # Проверить .bashrc, .profile текущего пользователя cat ~/.bashrc | grep -i "start\|run\|exec" cat ~/.profile # Проверить автозагрузку XDG (для графических сред) ls -la ~/.config/autostart/ ls -la /etc/xdg/autostart/
D. Проверка общих мест автозагрузки
bash
# Проверить несколько ключевых мест ls -la /etc/init.d/ ls -la /etc/rc*.d/ ls -la ~/.config/systemd/user/
3. Как узнать, какие файлы использует конкретный процесс
A. Команда lsof (List Open Files)
bash
# Показать все открытые файлы для конкретного PID lsof -p <PID> # Показать файлы, открытые процессом по имени lsof -c <process_name> # Фильтровать по типу файлов: lsof -p <PID> | grep -E "(\.py$|\.conf$|\.ini$|\.json$|\.yml$|\.yaml$)"
B. /proc файловая система
bash
# Перейти в каталог процесса cd /proc/<PID> # Показать открытые файловые дескрипторы ls -la fd/ # Показать текущую рабочую директорию readlink cwd # Показать исполняемый файл readlink exe # Показать переменные окружения cat environ | tr '\0' '\n' # Показать аргументы командной строки cat cmdline | tr '\0' ' '
C. Поиск конфигурационных файлов
bash
# Найти откуда процесс берет конфигурацию # 1. Сначала посмотреть переменные окружения cat /proc/<PID>/environ | tr '\0' '\n' | grep -i "config\|conf\|ini" # 2. Искать конфиги в стандартных местах find /etc -name "*.conf" -o -name "*.cfg" -o -name "*.ini" 2>/dev/null # 3. Проверить домашнюю директорию пользователя sudo -u <process_user> find ~ -name "*.conf" -o -name "*.cfg" 2>/dev/null
Полезные комбинации команд
Полный анализ Python процесса:
bash
# Найти PID Python процесса PID=$(pgrep -f "python.*your_script" | head -1) # Показать информацию о процессе echo "=== Информация о процессе $PID ===" echo "Команда:" cat /proc/$PID/cmdline | tr '\0' ' '; echo echo "=== Открытые файлы ===" lsof -p $PID | tail -20 echo "=== Текущая директория ===" readlink /proc/$PID/cwd echo "=== Конфигурационные файлы (возможно) ===" lsof -p $PID | grep -E "\.(conf|cfg|ini|json|yml|yaml|xml)$"
Мониторинг изменений в файлах:
bash
# Установить inotify-tools для мониторинга файлов sudo apt install inotify-tools # Мониторить директорию с конфигами inotifywait -m -r /etc/<app_directory>/
Бонус: Утилита strace для анализа
bash
# Установить strace sudo apt install strace # Проследить системные вызовы процесса strace -p <PID> -e trace=file # Или запустить новую команду с трассировкой strace -f -e trace=open,openat python your_script.py
Эти команды помогут вам глубоко анализировать процессы в Linux, находить нежелательные автозагрузки и понимать, откуда процессы берут свою конфигурацию.