Når du arbejder, fryser nogle gange dine programmer pludselig. Andre gange kører programmerne stadig, men med et højt processor- eller hukommelsesforbrug. Der er en måde at løse dette på i Linux ved hjælp af ps (Process Status) kommando. Her viser vi dig, hvordan du bruger ps kommando i Linux for at liste de i øjeblikket kørende processer og deres PID’er. Du kan derefter finde og dræbe de processer, der forbruger dine ressourcer.
Brug af kommandoen “ps”
Det ps kommandoen kan bruges alene. Det udsender fire informationskolonner:
- PID: den unikke identifikator for processen defineret af systemet. Det er den værdi, vi bruger til at stoppe en proces.
- TTY: terminal, hvorfra processen blev startet.
- TID: den samlede mængde CPU -tid, der bruges af processen.
- CMD: kommando, der genererer processen
Bemærk, at når du bruger kommandoen uden nogen muligheder, viser den dig ikke meget information. Her er et par måder at gøre det mere nyttigt.
1. Angiv processen for alle brugere
Når nogle programmer er installeret, opretter de nogle gange også nogle ekstra brugere til at køre processen. For at liste brugernes processer skal du bruge -e mulighed:
ps -e
og dens output:
PID TTY TIME CMD 1 ? 00:00:02 systemd 2 ? 00:00:00 kthreadd 3 ? 00:00:00 kworker/0:0 4 ? 00:00:00 kworker/0:0H 5 ? 00:00:00 kworker/u256:0 6 ? 00:00:00 mm_percpu_wq
2. Listeproces med flere oplysninger
Det er muligt at have flere oplysninger, når du viser den igangværende proces. For at gøre dette kan du bruge ef mulighed.
ps -ef
og dens output:
UID PID PPID C STIME TTY TIME CMD root 1 0 0 21:34 ? 00:00:03 /sbin/init maybe-ubiquity root 2 0 0 21:34 ? 00:00:00 [kthreadd] root 3 2 0 21:34 ? 00:00:00 [kworker/0:0] root 4 2 0 21:34 ? 00:00:00 [kworker/0:0H] root 6 2 0 21:34 ? 00:00:00 [mm_percpu_wq] root 7 2 0 21:34 ? 00:00:00 [ksoftirqd/0]
3. Filtrer processen efter proces -id
Hvis du kender proces -id’et for den igangværende proces, du vil vise, kan du filtrere specifikt efter det med -p flag. Dette kan tage flere PID’er som argumenter, adskilt af et enkelt komma og ingen mellemrum.
ps -ef -p 1234,5678,9012
4. Angiv de processer, der ejes af en bruger
Du kan også angive de processer, der ejes af en bruger med u valgmulighed efterfulgt af brugerens navn:
ps -u userName
og dens output:
PID TTY TIME CMD 2832 ? 00:00:00 systemd 2842 ? 00:00:00 (sd-pam) 3043 ? 00:00:00 sshd 3044 pts/1 00:00:00 bash 18396 pts/1 00:00:00 ps
5. Angiv de aktive processer
Det er muligt at liste alle de processer, der er aktive ved hjælp af ax mulighed:
ps -ax
og dens output:
PID TTY STAT TIME COMMAND 1 ? Ss 0:02 /sbin/init maybe-ubiquity 2 ? S 0:00 [kthreadd] 3 ? I 0:00 [kworker/0:0] 4 ? I< 0:00 [kworker/0:0H] 6 ? I< 0:00 [mm_percpu_wq] 7 ? S 0:00 [ksoftirqd/0]
6. Angiv de aktive processer med brugerne
Det er muligt at liste alle de aktive processer med brugerne, når du tilføjer -aux flag:
ps -aux
og dens output:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.2 78132 9188 ? Ss 21:34 0:02 /sbin/init maybe-ubiquity root 2 0.0 0.0 0 0 ? S 21:34 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? I 21:34 0:00 [kworker/0:0] root 4 0.0 0.0 0 0 ? I< 21:34 0:00 [kworker/0:0H] root 6 0.0 0.0 0 0 ? I< 21:34 0:00 [mm_percpu_wq] root 7 0.0 0.0 0 0 ? S 21:34 0:00 [ksoftirqd/0] root 8 0.0 0.0 0 0 ? I 21:34 0:00 [rcu_sched] root 9 0.0 0.0 0 0 ? I 21:34 0:00 [rcu_bh] root 10 0.0 0.0 0 0 ? S 21:34 0:00 [migration/0]
7. Filtrer processen efter navnet på et program
Det er muligt at hente oplysningerne om et specifikt program, der kører, ved at anvende et filter på ps resultat:
ps -aux | grep docker
og dens output:
root 1508 0.0 2.2 1518156 90868 ? Ssl 21:34 0:03 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock userkub+ 18429 0.0 0.0 13144 1108 pts/1 S+ 23:57 0:00 grep --color=auto docker
Alternativt kan du også bruge C mulighed for at filtrere processen efter dets navn:
ps -C name

8. Vis specifikke kolonner
Ud over de fire standardkolonner kan du få ps for at få vist en yderligere kolonne med oplysninger. For eksempel:
ps -e -o pid,uname,pcpu,pmem,comm

Det -o flag angiver specifikke outputvisningsmuligheder for ps kommandos resultater. Se en komplet liste over standard display muligheder for ps.
9. Vis resultater i hierarkisk træstil
ps -e --forest
Dette bruger ASCII-kunst til at oprette en struktur i træstil til visning af processer. Viser forked og børneprocesser som efterkommere af de relevante overordnede processer, sortering efter match. For at skjule “grene” af træet, brug -H i stedet for --forest.
10. Vis procestråde
ps -p 4041 -L

Det -L flag skifter på et gevindskåret display for enhver funktionalitet af ps. Det er mest nyttigt, når du sporer trådene i en bestemt proces.
11. Vis alle rodprocesser
ps -f -U root -u root

Udfør en søgning efter alle processer, der kører med reelle og effektive rodidentifikationer. Dette viser dem i formatet i fuld længde, takket være -f flag. Du kan kombinere det med -o flag for at tilpasse output.
Brug kill -kommandoen til at stoppe en proces
Når du har fundet fejlopførselsprocessen, kan du bruge kill -kommandoen til at dræbe en proces, der kører. Kommandoen sender et signal til en proces, der afslutter det. Når dine programmer er frosset, skal du for det meste kraftfuldt dræbe dem med -9 mulighed.

Outputtet af ps er en øjeblikkelig visning. I modsætning til htop, Den opdaterer ikke sig selv dynamisk. Det betyder, at du måske skal køre det flere gange for at få et klart billede af, hvilken proces der opfører sig forkert. For at få et opdateret overblik over processerne kan du prøve nogle andre kommandoer til Linux-systemet.
Støt vores arbejde ❤️
Hvis du kunne lide denne artikel, kan du overveje at give drikkepenge for at hjælpe os med fortsat at udgive kvalitetsindhold.




















