Articles

9 Måder at finde ud af, Proces-ID for et program i Linux

Når du arbejder på et Linux system, nogle gange er du nødt til at finde ud af, hvilke processer der kører, og som PID eller PPID er bundet til det. Det kan bruges til mange formål.grundlæggende søger vi efter en PID i Linu.for at dræbe et ikke-reagerende program, som kan udføres af GUI task manager, men CLI er den mest effektive måde at håndtere ikke-reagerende programmer på.

Dette er bedre end GUI, fordi nogle gange GUI-baserede værktøjer muligvis ikke viser den stadig kørende skjulte proces.,

i denne tutorial viser vi dig, hvordan du finder proces-ID (PID) for et program, der kører på mange måder i Linu..

hvad er process ID (pid)

PID henviser til process ID, som ofte bruges af de fleste operativsystemkerner, såsom Linu., Uni., MacOS og .indo .s.

Dette er et unikt ID, der automatisk tildeles hver proces, når den oprettes. En proces er en kørende forekomst af et program.

hvad er parent process ID (PPID)

en forældreproces er en proces, der har oprettet en eller flere børneprocesser., Hver barneproces får et Forældreproces-ID (PPID), og forældreprocessen dræber barnet, når det afslutter deres operation.

Du kan være interesseret i at læse nedenstående artikler, da disse er relateret til dette emne.

  • Sådan finder du ud af, hvilket portnummer en proces bruger i Linu.
  • 3 nemme måder at dræbe eller afslutte en proces i Linu.

hver gang proces-ID ‘ et ændres til alle processer undtagen init. init er altid den første proces i systemet og forfader til alle andre processer. Den indeholder PID 1.,

standardmaksimumværdien af PID ‘ er er 32,768. Dette kan kontrolleres ved at køre følgende kommando

cat /proc/sys/kernel/pid_max på din computer.

32,768 er den maksimale værdi på 32-bit-systemer, men kan indstilles til en hvilken som helst værdi op til 2^22 (cirka 4 millioner) på 64-bit-systemer.

Du kan spørge, Hvorfor har vi brug for sådanne størrelse PIDs? Dette skyldes, at PID ‘ er ikke kan genbruges med det samme og for at forhindre potentielle fejl.,

Du kan finde PID af processer, der kører på systemet ved hjælp af nedenstående ni metoder, såsom pidof kommando, pgrep kommando, ps kommando, pstree kommando, ss-kommandoen netstat-kommando, lsof kommando, fuser kommando, og systemctl kommando.

dette kan opnås ved hjælp af nedenstående ni metoder.

  • pidof: pidof – find proces-ID for et kørende program.
  • pgrep: pgre – slå op eller signalprocesser baseret på navn og andre attributter.,
  • ps: ps – Rapporter et øjebliksbillede af de aktuelle processer.
  • pstree: pstree – vis et træ af processer.
  • ss: ss bruges til at dumpe socket statistik.
  • netstat: netstat is viser en liste over åbne stikkontakter.
  • lsof: lsof – liste åbne filer.,
  • fuser: fuser – liste, proces-id ‘ er for alle processer, som har en eller flere filer open
  • systemctl: systemctl – Kontrol systemd system og service manager

for At bevise dette, vi kommer til at finde Apache proces-ID. Sørg for at indtaste dit procesnavn i stedet for os.

1) Hvordan finder man et Proces-ID (PID) i Linu?ved hjælp af pidof-kommando?

kommandoen pidof bruges til at finde proces-ID ‘ et for det kørende program. Det udskriver disse id ‘ er i standard output., For at demonstrere dette finder vi ‘Apache2’ proces-id i systemet.

# pidof apache2
2594 2365 2364 2363 2362 2361

i ovenstående output kan du have problemer med at identificere proces-ID ‘et, fordi det viser alle PID’ er (inklusive forælder og barn) mod procesnavnet.

så vi er nødt til at finde Forældreprocessen PID (PPID), hvilket er det, vi leder efter. Dette bliver det første nummer. I mit tilfælde er det 3754 og det er sorteret i faldende rækkefølge.

2) Sådan søger du et Proces-ID (PID) i Linu?ved hjælp af pgrep-kommando?,

pgrep-kommandoen ser på de processer, der aktuelt kører, og viser de Proces-id ‘ er, der matcher udvælgelseskriterierne.

# pgrep apache2236123622363236423652594

ovenstående output svarer til den “pidof’ kommando udgang, men det sorteret resultater i stigende rækkefølge, som klart viser, at den overordnede proces PID står til sidst.I mit tilfælde er det 3754.,

Bemærk: at Identificere den overordnede proces-ID ‘ et kan være problematisk, når du bruger ‘pidof’ & ‘pgrep’ – kommandoen, som hver proces kommer med en enkelt PPID og flere Pid ‘ er, som ikke viser forskellen mellem dem.

3) Sådan finder du et Proces-ID (PID) i Linu?ved hjælp af pstree-kommando?

pstree-kommandoen viser kørende processer som et trælignende format, hvilket er meget praktisk måde at vise processerne hierarki og gør output mere visuelt tiltalende., Hvis et brugernavn er angivet i kommandoen pstree, viser det hele processen, der ejes af den tilsvarende bruger.

pstree fusionerer visuelt identiske grene ved at sætte dem i firkantede parenteser og præfiksere dem med gentagelsestællingen.

# pstree -p | grep "apache2" |-
-+-apache2(2361) | |-apache2(2362) | |-apache2(2363) | |-apache2(2364) | |-apache2(2365) | `-apache2(2594)

for kun at få forældreprocessen skal du bruge følgende format.

# pstree -p | grep "apache2" | head -1 |-
-+-apache2(2361)

‘pstree’ kommando er meget bedre end kommandoen ‘pidof’ & ‘pgrep’, fordi den adskiller forældre-og børneprocesser, som ikke er mulige af dem.,

4) Hvordan finder man et Proces-ID (PID) i Linu?ved hjælp af PS-kommando?

ps kommando viser oplysninger om et udvalg af de aktive processer, som omfatter proces-ID (pid=PID), terminal, der er forbundet med processen (tname=TTY), kumuleret CPU-tid i tt:mm:ss-format (tid=tid), og eksekverbare navn (ucmd=CMD). Output er usorteret som standard.

Forældreproces-ID (PPID) kan let identificeres baseret på processtartdatoen fra ovenstående output., I vores tilfælde startede ‘Apache2’ – processen på December 11th, som er forældreprocessen og de andre barneprocessen. PID for Apache2 er 3754.

5) Hvordan finder man et Proces-ID (PID) i Linu?ved hjælp af SS-kommando?

ss-kommandoen bruges til at dumpe socket statistik. Det giver mulighed for at vise oplysninger svarende til netstat. Det kan vise flere TCP og tilstand Oplysninger end andre værktøjer.

det kan vise statistik for alle slags stikkontakter såsom pakke, TCP, UDP, DCCP, RA., Uni. – domæne osv.,

# ss -tnlp | grep apache2LISTEN 0 128 :::80 :::* users:(("apache2",pid=3319,fd=4),("apache2",pid=3318,fd=4),("apache2",
,fd=4))

6) Hvordan finder man et Proces-ID (PID) i Linu?ved hjælp af netstat-kommandoen?

kommandoen netstat bruges til at udskrive netværksforbindelser, routingtabeller, grænsefladestatistik, maskeradeforbindelser og multicast-medlemskaber. Som standard viser netstat en liste over åbne stikkontakter.

Hvis du ikke angiver nogen adressefamilier, udskrives de aktive stikkontakter for alle konfigurerede adressefamilier. Dette program er forældet. Erstatning for netstat er ss.

# netstat -tnlp | grep apache2tcp6 0 0 :::80 :::* LISTEN 

7) Sådan finder du et Proces-ID (pid) i Linu?ved hjælp af lsof-kommandoen?,

lsof-kommandoen bruges til at liste åbne filer. Linu.lsof-kommandoen viser oplysninger om filer, der er åbne ved processer, der kører på systemet.

8) Hvordan finder man et Proces-ID (PID) i Linu?ved hjælp af fuser-kommando?

fuserværktøjet skal skrive til standard output proces-id ‘ erne for processer, der kører på det lokale system, der har en eller flere navngivne filer åbne.

# fuser -v 80/tcp USER PID ACCESS COMMAND80/tcp: root 
www-data 3318 F.... apache2 www-data 3319 F.... apache2

9) Sådan finder du et Proces-ID (PID) i Linu?ved hjælp af systemctl-kommando?

kommandoen systemctl bruges til at styre systemd service manager., Dette er en erstatning for den gamle SysVinit – systemstyring, og de fleste af de moderne Linu. – operativsystemer er blevet flyttet til systemd.