Guide

Nouvelles mises à jour et améliorations de Roundfleet.

Avis important

Les exemples de code et scripts fournis dans ces tutoriels sont uniquement à des fins éducatives. Roundfleet n'est pas responsable des problèmes, dommages ou vulnérabilités de sécurité qui pourraient survenir lors de l'utilisation, modification ou implémentation de ces exemples. Toujours vérifier et tester le code dans un environnement sécurisé avant de l'utiliser dans des systèmes de production.

Gérer les processus en cours d'exécution sur macOS

Surveillez et contrôlez les processus en cours d'exécution sur vos appareils Roundfleet en utilisant des outils en ligne de commande. Ce tutoriel couvre la surveillance du CPU, l'analyse de la mémoire, la liste des processus et la terminaison de processus pour une gestion système efficace.

Comprendre la gestion des processus macOS

macOS fournit plusieurs outils en ligne de commande pour la gestion des processus :

  • top - Affichage en temps réel des processus en cours et de l'utilisation système
  • ps - Instantané des processus actuels
  • kill - Terminer des processus par PID
  • Moniteur d'activité - Équivalent GUI pour la surveillance visuelle

Afficher l'utilisation du CPU

Utilisation basique du CPU

#!/bin/bash

# Afficher l'utilisation actuelle du CPU
top -l 1 -s 0 | grep "CPU usage"

echo "Utilisation du CPU récupérée avec succès"

Analyse détaillée du CPU

#!/bin/bash

# Obtenir des informations complètes sur le CPU
echo "=== Analyse d'utilisation du CPU ==="
echo "Utilisation actuelle du CPU :"
top -l 1 -s 0 | grep "CPU usage"

echo -e "\nProcessus consommant le plus de CPU :"
top -l 1 -s 0 | head -20 | tail -10

echo -e "\nMoyenne de charge :"
uptime

Afficher l'état de la mémoire

Informations basiques de la mémoire

#!/bin/bash

# Afficher l'utilisation de la mémoire
top -l 1 -s 0 | grep PhysMem

echo "État de la mémoire récupéré avec succès"

Analyse complète de la mémoire

#!/bin/bash

# Rapport détaillé de la mémoire
echo "=== Analyse de l'état de la mémoire ==="
echo "Utilisation de la mémoire physique :"
top -l 1 -s 0 | grep PhysMem

echo -e "\nStatistiques de la mémoire virtuelle :"
vm_stat

echo -e "\nPression mémoire :"
memory_pressure

Lister les processus en cours d'exécution

Voir tous les processus

#!/bin/bash

# Lister tous les processus en cours d'exécution
ps aux

echo "Liste des processus générée avec succès"

Liste limitée de processus

#!/bin/bash

# Afficher les 10 premiers processus
echo "Top 10 des processus en cours :"
ps aux | head -11

# Afficher un nombre spécifique de processus (remplacer 15 par le nombre désiré)
echo -e "\nTop 15 des processus :"
ps aux | head -16

Vues filtrées des processus

#!/bin/bash

# Afficher seulement les processus utilisateur
echo "Processus utilisateur :"
ps aux | grep -v "^root"

echo -e "\nProcessus système :"
ps aux | grep "^root" | head -10

echo -e "\nProcessus utilisant le plus de CPU :"
ps aux --sort=-%cpu | head -10

echo -e "\nProcessus utilisant le plus de mémoire :"
ps aux --sort=-%mem | head -10

Terminaison de processus

Tuer un processus par PID

#!/bin/bash

# Tuer un processus spécifique (remplacer PID par l'ID de processus réel)
PID="1234"

if kill -9 "$PID" 2>/dev/null; then
    echo "Processus $PID terminé avec succès"
else
    echo "Échec de la terminaison du processus $PID ou processus introuvable"
fi

Tuer un processus par nom

#!/bin/bash

# Tuer un processus par nom d'application
APP_NAME="Safari"

if pkill -f "$APP_NAME"; then
    echo "Processus $APP_NAME terminés avec succès"
else
    echo "Aucun processus $APP_NAME trouvé ou échec de la terminaison"
fi

Terminaison sécurisée de processus

#!/bin/bash

# Terminer gracieusement un processus avec confirmation
terminate_process() {
    local pid="$1"
    local process_name
    
    # Obtenir le nom du processus
    process_name=$(ps -p "$pid" -o comm= 2>/dev/null)
    
    if [[ -z "$process_name" ]]; then
        echo "Processus $pid introuvable"
        return 1
    fi
    
    echo "Processus trouvé : $process_name (PID: $pid)"
    
    # Essayer d'abord une terminaison gracieuse
    if kill -TERM "$pid" 2>/dev/null; then
        echo "Signal de terminaison envoyé à $process_name"
        sleep 3
        
        # Vérifier si le processus existe encore
        if kill -0 "$pid" 2>/dev/null; then
            echo "Processus encore actif, forcer la terminaison..."
            kill -9 "$pid" 2>/dev/null
        fi
        
        echo "Processus $process_name terminé"
        return 0
    else
        echo "Échec de la terminaison du processus $process_name"
        return 1
    fi
}

# Exemple d'utilisation (remplacer par le PID réel)
# terminate_process 1234

Script de gestion de processus d'entreprise

#!/bin/bash

# Outil de gestion des processus Roundfleet
# Surveiller et gérer les processus sur les appareils de la flotte

# Configuration
LOG_FILE="/var/log/roundfleet_processes.log"
ALERT_CPU_THRESHOLD=80
ALERT_MEMORY_THRESHOLD=80

# Fonction de journalisation
log_action() {
    echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
}

# Obtenir les statistiques système
get_system_stats() {
    echo "=== Statistiques système ==="
    
    # Utilisation CPU
    local cpu_info
    cpu_info=$(top -l 1 -s 0 | grep "CPU usage")
    echo "CPU : $cpu_info"
    
    # Utilisation mémoire
    local mem_info
    mem_info=$(top -l 1 -s 0 | grep PhysMem)
    echo "Mémoire : $mem_info"
    
    # Moyenne de charge
    echo "Charge : $(uptime | awk -F'load average:' '{print $2}')"
    
    # Top processus
    echo -e "\nTop 5 des consommateurs CPU :"
    ps aux --sort=-%cpu | head -6 | tail -5
    
    echo -e "\nTop 5 des consommateurs mémoire :"
    ps aux --sort=-%mem | head -6 | tail -5
}

# Vérifier la santé du système
check_system_health() {
    echo "=== Vérification de la santé du système ==="
    
    # Vérifier les processus haute utilisation CPU
    local high_cpu_procs
    high_cpu_procs=$(ps aux | awk -v threshold="$ALERT_CPU_THRESHOLD" '$3 > threshold {print $2, $11, $3"%"}')
    
    if [[ -n "$high_cpu_procs" ]]; then
        echo "⚠️  Processus haute utilisation CPU :"
        echo "$high_cpu_procs"
        log_action "Alerte CPU élevé : $high_cpu_procs"
    fi
    
    # Vérifier les processus haute utilisation mémoire
    local high_mem_procs
    high_mem_procs=$(ps aux | awk -v threshold="$ALERT_MEMORY_THRESHOLD" '$4 > threshold {print $2, $11, $4"%"}')
    
    if [[ -n "$high_mem_procs" ]]; then
        echo "⚠️  Processus haute utilisation mémoire :"
        echo "$high_mem_procs"
        log_action "Alerte mémoire élevée : $high_mem_procs"
    fi
}

# Tuer les processus incontrôlés
kill_runaway_processes() {
    echo "=== Détection de processus incontrôlés ==="
    
    # Trouver les processus utilisant un CPU excessif (>90% pendant >5 minutes)
    local runaway_pids
    runaway_pids=$(ps aux | awk '$3 > 90 {print $2}')
    
    for pid in $runaway_pids; do
        local process_name
        process_name=$(ps -p "$pid" -o comm= 2>/dev/null)
        
        if [[ -n "$process_name" ]]; then
            echo "Processus incontrôlé trouvé : $process_name (PID: $pid)"
            
            # Ignorer les processus système critiques
            if [[ "$process_name" =~ ^(kernel|launchd|WindowServer)$ ]]; then
                echo "Ignorer le processus système critique : $process_name"
                continue
            fi
            
            log_action "Terminaison du processus incontrôlé : $process_name (PID: $pid)"
            kill -TERM "$pid"
        fi
    done
}

# Fonction principale de surveillance
main() {
    log_action "=== Surveillance des processus Roundfleet démarrée ==="
    
    get_system_stats
    echo ""
    check_system_health
    echo ""
    
    # Optionnellement tuer les processus incontrôlés (décommenter pour activer)
    # kill_runaway_processes
    
    log_action "=== Surveillance des processus terminée ==="
}

# Exécuter la fonction principale
main "$@"

Détails des informations de processus

Lors de l'utilisation de ps aux, chaque colonne fournit des informations spécifiques :

ColonneDescription
USERUtilisateur exécutant le processus (processus système ou utilisateur)
PIDID du processus (identifiant unique)
%CPUPourcentage d'utilisation CPU
%MEMPourcentage d'utilisation mémoire
VSZTaille de la mémoire virtuelle en KB
RSSUtilisation de la mémoire physique en KB
TTTerminal associé au processus
STATÉtat du processus (R=en cours, S=endormi, Z=zombie)
STARTEDDate/heure de démarrage du processus
TIMETemps CPU consommé
COMMANDCommande utilisée pour démarrer le processus

Tâches courantes de gestion de processus

Trouver un processus par nom

# Trouver les processus Safari
ps aux | grep -i safari

# Trouver tous les processus contenant "mail"
ps aux | grep -i mail | grep -v grep

Surveiller un processus en temps réel

# Surveiller un processus spécifique
watch -n 1 'ps aux | grep -i safari'

# Surveiller les ressources système en continu
top -s 1 -n 10

Générer un rapport de processus

#!/bin/bash

# Créer un rapport complet des processus
REPORT_FILE="process_report_$(date +%Y%m%d_%H%M%S).txt"

{
    echo "Rapport de processus Roundfleet"
    echo "Généré : $(date)"
    echo "Nom d'hôte : $(hostname)"
    echo "=========================="
    echo ""
    
    echo "Aperçu système :"
    top -l 1 -s 0 | grep -E "(CPU usage|PhysMem)"
    echo ""
    
    echo "Top 20 processus :"
    ps aux | head -21
    echo ""
    
    echo "Nombre de processus par utilisateur :"
    ps aux | awk '{print $1}' | sort | uniq -c | sort -nr
    
} > "$REPORT_FILE"

echo "Rapport de processus sauvegardé dans : $REPORT_FILE"

Notes importantes

  • Les ID de processus (PID) changent lorsque les processus redémarrent
  • Les processus système nécessitent des privilèges admin pour être terminés
  • Force kill (kill -9) doit être utilisé en dernier recours
  • Surveiller l'utilisation des ressources avant de terminer des processus
  • Tester les scripts sur des appareils individuels avant le déploiement en flotte

Related Tutorials

Gestion Entreprise du Sommeil et de l'Alimentation pour macOS

Gérez les paramètres de sommeil et d'alimentation macOS sur les appareils Roundfleet avec des politiques d'alimentation automatisées, l'optimisation énergétique, la surveillance de conformité et la gestion complète de la flotte pour l'efficacité et la sécurité d'entreprise.

7 juil. 2025

Gestion Entreprise de l'Arrêt et du Redémarrage pour macOS

Gérez les opérations d'arrêt et de redémarrage macOS sur les appareils Roundfleet avec la planification automatisée de maintenance, les procédures d'arrêt en douceur, la validation de sécurité et la gestion complète de l'alimentation de la flotte pour les opérations d'entreprise.

7 juil. 2025

Exécuter l'Assistant de configuration sur les appareils macOS au prochain redémarrage

Apprenez à déclencher l'Assistant de configuration macOS au prochain redémarrage pour la reconfiguration des appareils, l'intégration des utilisateurs et les scénarios de déploiement d'entreprise.

7 juil. 2025

Gestion d'Entreprise des Redémarrages Programmés sur macOS

Guide complet pour programmer, gérer et surveiller les redémarrages système sur les flottes macOS avec politiques de planification avancées, notifications utilisateur, fenêtres de maintenance et rapports de conformité.

7 juil. 2025

Gestion de Batterie d'Entreprise sur macOS

Apprenez à surveiller l'état, la santé et les performances de la batterie sur les appareils macOS en utilisant des outils de gestion de batterie avancés avec surveillance de niveau entreprise, optimisation, conformité et capacités d'analyse de batterie à l'échelle de la flotte.

7 juil. 2025

Gestion des Limites de Charge de Batterie sur macOS

Apprenez à gérer et configurer les limites de charge de batterie sur les appareils macOS en utilisant bclm (Battery Charge Limit Max) pour l'optimisation de la santé de la batterie d'entreprise et les politiques de gestion d'énergie.

7 juil. 2025

Gestion d'Information Système d'Entreprise sur macOS

Collectez, analysez et gérez les informations système sur les appareils macOS avec le profilage système avancé, la collecte automatisée de données et l'analytique d'entreprise pour l'inventaire et la surveillance complète des appareils.

7 juil. 2025

Gestion de Stockage d'Entreprise sur macOS

Surveillez l'utilisation du disque, implémentez les politiques de stockage et optimisez les performances de stockage sur les appareils macOS avec la gestion avancée de stockage, le nettoyage automatisé et l'analytique d'entreprise pour l'infrastructure de stockage organisationnelle.

7 juil. 2025