How To Display Running Python Processes?

Published July 14, 2024

Problem: Identifying Running Python Processes

Monitoring active Python processes is important for managing system resources and fixing performance issues. It can be hard to track multiple Python scripts running at the same time, especially when working with complex applications or automated tasks.

Using the 'ps' Command to List Python Processes

Basic 'ps' Command Usage

The 'ps' command shows information about active processes on a Unix-like system. It displays a snapshot of current processes, including their Process ID (PID), terminal, CPU usage, and more.

To list Python processes using 'ps', combine it with the 'grep' command:

ps aux | grep python

This command shows processes containing "python" in their name or command line. The 'aux' options give a detailed view of all processes for all users.

Tip: Exclude grep from results

To exclude the 'grep' command itself from the results, use the following command:

ps aux | grep '[p]ython'

This trick uses square brackets around the first letter, which matches 'python' but not '[p]ython', effectively filtering out the grep process itself.

Advanced 'ps' Options for Detailed Information

For more details about Python processes, use these flags with the 'ps' command:

ps -eo pid,ppid,user,%cpu,%mem,start,time,command | grep python

This command provides:

  • PID: Process ID
  • PPID: Parent Process ID
  • USER: User running the process
  • %CPU: CPU usage
  • %MEM: Memory usage
  • START: Start time of the process
  • TIME: CPU time
  • COMMAND: Full command line

To read this output:

  1. Check the PID to identify specific processes.
  2. Look at the %CPU and %MEM columns for resource usage.
  3. The START and TIME columns show when the process began and its run time.
  4. The COMMAND column shows the full Python command, which can help identify the script or application.

Using these 'ps' options gives you a clear view of your Python processes and their resource usage.

Using 'pgrep' for Python Process Identification

Introduction to 'pgrep'

'pgrep' is a tool that searches for processes based on their names or attributes. It helps find process IDs (PIDs) of running programs. 'pgrep' is simple and can filter processes easily.

To use 'pgrep' with Python, use this basic syntax:

pgrep python

This command lists PIDs of processes with "python" in their name. For more details, use the '-l' flag:

pgrep -l python

This shows both the PID and process name.

Tip: Using 'pgrep' with Regular Expressions

You can use regular expressions with 'pgrep' for more precise matching. For example, to find Python processes with version numbers:

pgrep -f "python23?"

This matches processes like "python3", "python3.8", or "python2.7".

Combining 'pgrep' with Other Commands

You can combine 'pgrep' with other commands for more operations. Here are some examples:

To kill all Python processes:

pkill -f python

To see full command lines of Python processes:

pgrep -af python

To list Python processes for a specific user:

pgrep -u username python

To count running Python processes:

pgrep python | wc -l

To get detailed information about Python processes:

pgrep python | xargs ps -fp