Получение процессов Linux и отображение имен процессов

Чтобы получить процессы Linux и отобразить их имена, существует несколько способов. Вот несколько примеров использования разных языков программирования:

  1. Bash (Shell):

    #!/bin/bash
    ps -e -o comm
  2. Python с использованием библиотеки psutil:

    import psutil
    for proc in psutil.process_iter(['name']):
    print(proc.info['name'])
  3. C с использованием файловой системы proc:

    #include <stdio.h>
    #include <dirent.h>
    int main() {
    DIR *dir = opendir("/proc");
    struct dirent *entry;
    while ((entry = readdir(dir)) != NULL) {
        if (entry->d_type == DT_DIR) {
            int pid = atoi(entry->d_name);
            if (pid != 0) {
                char path[256];
                snprintf(path, sizeof(path), "/proc/%d/comm", pid);
                FILE *file = fopen(path, "r");
                if (file) {
                    char comm[256];
                    fgets(comm, sizeof(comm), file);
                    fclose(file);
                    printf("%s", comm);
                }
            }
        }
    }
    closedir(dir);
    return 0;
    }
  4. Java с использованием пакета java.lang.management:

    import java.lang.management.ManagementFactory;
    public class ProcessList {
    public static void main(String[] args) {
        for (var process : ManagementFactory.getOperatingSystemMXBean().getOperatingSystem().getProcesses()) {
            System.out.println(process.getProcessName());
        }
    }
    }