Sådan Finder du Oppetiden for en Linux-proces i Millisekunder - Trin-for-Trin Guide

Hvordan finder man oppetiden for en given Linux-proces i millisekunder?

For at finde oppetiden for en given Linux-proces i millisekunder, skal du først finde proces-ID (PID), læse processtatistik fra /proc/[PID]/stat, konvertere ticks til millisekunder og derefter beregne oppetiden ved at trække starttidspunktet fra den aktuelle tid.

Hvordan finder man oppetiden for en given Linux-proces i millisekunder?

For at finde oppetiden for en given Linux-proces i millisekunder, kan du følge disse trin:

  1. Find proces-ID (PID):

    Først skal du finde PID for den proces, du er interesseret i. Dette kan gøres ved hjælp af kommandoen ps eller pgrep. For eksempel:

    ps aux | grep [process_name]

    eller

    pgrep [process_name]
  2. Læs processtatistik:

    Når du har PID, kan du læse processtatistikken fra /proc filsystemet. Brug følgende kommando:

    cat /proc/[PID]/stat
  3. Find starttidspunkt:

    Den 22. værdi i outputtet fra /proc/[PID]/stat er starttidspunktet for processen i ticks siden systemstart. For eksempel:

    cat /proc/[PID]/stat | awk '{print $22}'
  4. Konverter ticks til millisekunder:

    For at konvertere ticks til millisekunder, skal du kende systemets tick rate, som kan findes ved hjælp af:

    getconf CLK_TCK

    Antag, at tick rate er 100 (standard på mange systemer), kan du konvertere ticks til sekunder og derefter til millisekunder:

    uptime_in_ticks=$(cat /proc/[PID]/stat | awk '{print $22}')
    tick_rate=$(getconf CLK_TCK)
    uptime_in_seconds=$(echo "scale=2; $uptime_in_ticks / $tick_rate" | bc)
    uptime_in_milliseconds=$(echo "$uptime_in_seconds * 1000" | bc)
  5. Beregn oppetid:

    For at finde oppetiden i millisekunder, skal du trække starttidspunktet fra den aktuelle tid. Den aktuelle tid i ticks kan findes ved at læse /proc/uptime:

    current_time_in_ticks=$(awk '{print $1 * '$tick_rate'}' /proc/uptime)
    process_start_time_in_ticks=$(cat /proc/[PID]/stat | awk '{print $22}')
    uptime_in_ticks=$(echo "$current_time_in_ticks - $process_start_time_in_ticks" | bc)
    uptime_in_milliseconds=$(echo "$uptime_in_ticks * 1000 / $tick_rate" | bc)

Ved at følge disse trin kan du finde oppetiden for en given Linux-proces i millisekunder.