30 Användbara ”ps Command” -exempel för Linux-processövervakning
ps (processstatus) är ett inbyggt Unix / Linux-verktyg för att visa information om ett urval för att köra processer på ett system: den läser denna information från de virtuella filerna i / proc-filsystemet. Det är ett av de viktigaste verktygen för systemadministration specifikt under processövervakning, för att hjälpa dig att förstå vad som händer på ett Linux-system.
Det har många alternativ för att manipulera dess utdata, men du hittar en liten antal av dem praktiskt taget användbara för daglig användning.
Läs också: Allt du behöver veta om processer i Linux
I den här artikeln tittar vi på 30 användbara exempel på ps-kommandon. för att övervaka aktiva körprocesser på ett Linux-system.
Observera att ps producerar utdata med en rubrik, som representerar betydelsen av varje informationskolumn, du kan hitta betydelsen av alla etiketter i ps man sida.
Lista alla processer i nuvarande skal
1. Om du kör ps-kommando utan några argument visar det processer för det aktuella skalet.
$ ps
Skriv ut alla processer i olika format
2. Visa alla aktiva processer i ett Linux-system i generiskt (Unix / Linux) format.
$ ps -AOR$ ps -e
3. Visa alla processer i BSD-format.
$ ps auOR$ ps axu
4. För att göra en fullständig lista, lägg till flaggan -f
eller -F
.
$ ps -efOR$ ps -eF
Visa körningsprocesser för användare
5. Du kan välja alla processer som du äger (löpare för ps-kommandot, root i det här fallet), skriv:
$ ps -x
6. För att visa en användares processer efter verkligt användar-ID (RUID) eller namn, använd -U
-flaggan.
$ ps -fU tecmintOR$ ps -fu 1000
7. För att välja en användares processer efter effektivt användar-ID (EUID) eller namn, använd alternativet -u
.
$ ps -fu tecmintOR$ ps -fu 1000
Skriv ut alla processer som körs som rot (Real- och Effecitve-ID)
8. Med kommandot nedan kan du visa alla processer som körs med root-användarbehörigheter (verkligt & effektivt ID) i användarformat.
$ ps -U root -u root
Visa gruppprocesser
9. Om du vill lista alla processer som ägs av en viss grupp (riktigt grupp-ID (RGID) eller namn) skriver du.
$ ps -fG apacheOR$ ps -fG 48
10. För att lista alla processer som ägs av ett effektivt gruppnamn (eller session), skriv.
$ ps -fg apache
Visningsprocesser efter PID och PPID
11. Du kan lista processer med PID enligt följande.
$ ps -fp 1178
12. För att välja process med PPID, skriv.
$ ps -f --ppid 1154
13. Gör val med PID-lista.
$ ps -fp 2226,1154,1146
Visningsprocesser med TTY
14. För att välja processer efter tty, använd flaggan -t enligt följande.
$ ps -t pst/0$ ps -t pst/1$ ps -ft tty1
Utskriftsträdsträd
15. Ett processträd visar hur processer i systemet är länkade till varandra. processer vars föräldrar har dödats antas av init (eller systemd).
$ ps -e --forest
16. Du kan också skriva ut ett processträd för en viss process så här.
$ ps -f --forest -C sshdOR$ ps -ef --forest | grep -v grep | grep sshd
Trådar för utskriftsprocesser
17. För att skriva ut alla trådar i en process använder du -H
-flaggan, detta visar LWP (lättviktsprocess) och NLWP (antal lättviktsprocesser) kolumner.
$ ps -fL -C httpd
Ange anpassat utdataformat
Med alternativet -o eller –format låter ps dig bygga användardefinierade utdataformat enligt nedan.
18. För att lista alla formatspecifikationer, inkludera L
flaggan.
$ ps L
19. Med kommandot nedan kan du visa PID, PPID, användarnamn och kommando för en process.
$ ps -eo pid,ppid,user,cmd
20. Nedan är ett annat exempel på ett anpassat utdataformat som visar filsystemgrupp, bra värde, starttid och förfluten tid för en process.
$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
21. För att hitta ett processnamn med PID.
$ ps -p 1154 -o comm=
Visa föräldra- och underordnade processer
22. För att välja en specifik process efter dess namn, använd -C-flaggan, detta visar också alla dess underprocesser.
$ ps -C sshd
23. Hitta alla PID-filer i alla instanser av en process, användbara när du skriver skript som behöver läsa PID-filer från en std-utgång eller -fil.
24. Kontrollera körningstiden för en process.
$ ps -eo comm,etime,user | grep httpd
Utmatningen nedan visar att HTTPD-tjänsten har körts i 1 timmar, 48 minuter och 17 sekunder.
Felsök Linux-systemprestanda
Om ditt system inte fungerar som det borde vara, till exempel om det är ovanligt långsamt, kan du utföra systemfelsökning på följande sätt.
26. Hitta de mest kända processerna efter högsta minne och CPU-användning i Linux.
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | headOR$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
27. Att döda Linux-processer / applikationer som inte svarar eller någon process som tar hög CPU-tid.
Hitta först PID för processen som inte svarar.
$ ps -A | grep -i stress
Använd sedan kill-kommandot för att avsluta det omedelbart.
$ kill -9 2583 2584
Skriv ut säkerhetsinformation
28. Visa säkerhetskontext (specifikt för SELinux) så här.
$ ps -eMOR$ ps --context
29. Du kan också visa säkerhetsinformation i användardefinierat format med det här kommandot.
$ ps -eo euser,ruser,suser,fuser,f,comm,label
Utför processövervakning i realtid med hjälp av klockverktyg
30. Slutligen, eftersom ps visar statisk information, kan du använda klockverktyget för att utföra processövervakning i realtid med repetitiv utdata, visas efter varje sekund som i kommandot nedan (ange ett anpassat ps-kommando för att uppnå ditt mål).
$ watch -n 1 "ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head"
Viktigt: ps visar bara statisk information, för att visa ofta uppdaterade utdata kan du använda verktyg som htop; topp och blickar: de två sista är i själva verket Linux-systemets prestandaövervakningsverktyg.
Du kanske också vill läsa följande relaterade artiklar.
- Så här hittar du ett processnamn med PID-nummer i Linux
- Hitta de bästa processerna som körs med högsta minne och CPU-användning i Linux
- En guide till Kill, Pkill och Killall-kommandon för att avsluta en process i Linux
- Hur man hittar och dödar körningsprocesser i Linux
- Så här startar du Linux-kommandot i bakgrunden och kopplar bort processen i terminal