GNU/Linux >> Znalost Linux >  >> Linux

Jak najít název procesu pomocí čísla PID v Linuxu

V tomto článku se podíváme na to, jak najít název procesu podle jeho identifikačního čísla procesu (PID). Než se ponoříme do skutečného řešení, pojďme si krátce promluvit o tom, jak Linux vytváří a identifikuje procesy.

Pokaždé, když uživatel nebo systém (Linux) spustí program, jádro vytvoří proces. Proces uchovává podrobnosti o provádění programu v paměti, jako jsou jeho vstupní a výstupní data, proměnné a tak dále.

Důležité je, že protože Linux je multitaskingový operační systém, spouští několik programů současně, což znamená, že každý proces musí být specificky identifikován.

Jádro identifikuje každý proces pomocí ID procesu (PID ), každá instance procesu musí mít jedinečné PID z jiných procesů, které jsou přiřazeny při vyvolání procesu, aby se předešlo chybám při provádění.

Souborový systém /proc ukládá informace o aktuálně běžících procesech ve vašem systému, obsahuje adresáře pro každý proces.

K vypsání obsahu použijte příkaz ls, ale seznam může být dlouhý, takže použijte kanál a méně obslužný program k zobrazení obsahu /proc pohodlnějším způsobem, jak je uvedeno níže:

$ ls /proc NEBO$ ls /proc | méně 
Systém souboru seznamu /proc 1 168 2230 25 329 584 7386 83 Řidič SchedStat10 169 2234 2503 33 603 74 830 Execdomains SCSI1070 17 2247 2507 34 610 7411 833 FB Self 1081 1702 2256 2523 349 611 7423 836 PRABONITY. 745 839 FS SoftIRQS11 173 2266 2551 36 613 746 84 Přerušení STAT110 1760 2273 262 62 75 844 IOMEM SWAPS1188 1763 2278 2643 64 75391643 64 64 64 364 364 643 64 763 269. sysvipc1209 1773 2285 2698 38 65 7619 87 kcore thread-self1254 18 2287 2699 39 66 7689 9 klíčů timer_list13 1847 2295 27 701 timer_974 key 1914 23 2702 3976 68 77 977 kmsg tty152 1917 2308 28 4273 6897 7725 981 kpagecgroup uptime153 1918 2309 280 4374 69 7729 987 kpagecount version154 1938 2310 2815 4392 6969 7733 997 kpageflags version_signature155 1956 2311 2817 44 6980 78 ACPI loadavg vmallocinfo156 1981 2315 282 45 7 79 ASOUND LOCKS VMSTAT1565 1986 2316 283 4543 70 790 Buddyinfo Mdstat ZoneInfo1567 1988 2317 26 46 4686 720833330 234033030 234033030 23403303030303030303030. 810 cpuinfo mtrr159 2044 2437 3016 5 7311 815 crypto net1590 21 2442 31 515 7322 82 zařízení pagetypeinfo16 2167 2443 318 302 54783 disk partitions 60 22 2492 32 5274 7367 823 dma sched_debug

Z výše uvedeného snímku obrazovky jsou očíslované adresáře uloženy informační soubory o probíhajících procesech, kde každé číslo odpovídá PID .

Níže je seznam souborů pro systemd proces s PID 1 :

$ ls /proc/1
Zobrazit PID procesu SystemD
ls:nelze číst symbolický odkaz '/proc/1/cwd':Odepřeno oprávnění:nelze číst symbolický odkaz '/proc/1/root':Odepřeno oprávnění:nelze číst symbolický odkaz '/proc/1 /exe':Povolení odepřeno coredump_filter gid_map mountinfo oom_score schedstat statusautogroup cpuset io mounts oom_score_adj sessionid syscallauxv cwd limity mountstats pagemap setgroups taskcgroup environ loginuid síť_osobnost_mapy_map timersclear_refes_cmnsdline promap_filom_statistiky statcom_info umap_filom_statistiky statcomdinfo umap_filom> 

Procesy a jejich PID můžete monitorovat pomocí tradičních linuxových příkazů, jako je ps, top a relativně nové pohledy a mnoho dalších, jako v příkladech níže:

$ ps aux
Zobrazit běžící procesy s PID
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0,0 0,0 185728 6268 ? Ss 10:15 0:01 /sbin/init splashroot 2 0,0 0,0 0 0 ? S 10:15 0:00 [kthreadd]kořen 3 0,0 0,0 0 0 ? S 10:15 0:00 [ksoftirqd/0]kořen 5 0,0 0,0 0 0 ? S<10:15 0:00 [kworker/0:0H]kořen 7 0,0 0,0 0 0? S 10:15 0:09 [rcu_sched]kořen 8 0,0 0,0 0 0 ? S 10:15 0:00 [rcu_bh]kořen 9 0,0 0,0 0 0 ? S 10:15 0:00 [migrace/0]kořen 10 0,0 0,0 0 0 ? S 10:15 0:00 [hlídací pes/0]kořen 11 0,0 0,0 0 0 ? S 10:15 0:00 [hlídací pes/1]kořen 12 0,0 0,0 0 0 ? S 10:15 0:00 [migrace/1]kořen 13 0,0 0,0 0 0 ? S 10:15 0:00 [ksoftirqd/1]kořen 15 0,0 0,0 0 0 ? S<10:15 0:00 [kworker/1:0H]kořen 16 0,0 0,0 0 0 ? S 10:15 0:00 [hlídací pes/2]kořen 17 0,0 0,0 0 0 ? S 10:15 0:00 [migrace/2]kořen 18 0,0 0,0 0 0 ? S 10:15 0:00 [ksoftirqd/2]kořen 20 0,0 0,0 0 0 ? S<10:15 0:00 [kworker/2:0H]kořen 21 0,0 0,0 0 0 ? S 10:15 0:00 [hlídací pes/3]kořen 22 0,0 0,0 0 0 ? S 10:15 0:00 [migrace/3]kořen 23 0,0 0,0 0 0 ? S 10:15 0:00 [ksoftirqd/3]kořen 25 0,0 0,0 0 0 ? S<10:15 0:00 [kworker/3:0H]kořen 26 0,0 0,0 0 0 ? S 10:15 0:00 [kdevtmpfs]kořen 27 0,0 0,0 0 0 ? S<10:15 0:00 [netns]root 28 0,0 0,0 0 0 ? S<10:15 0:00 [výkon]....

Monitorujte procesy Linuxu pomocí tradičního příkazu top.

$ top

Monitorujte procesy Linuxu pomocí pohledů , nový nástroj pro monitorování procesů v reálném čase pro Linux.

$ pohledy

Přečtěte si další informace o tom, jak nainstalovat Glances v systémech Linux.

Zjistěte číslo PID procesu

Chcete-li zjistit PID procesu, můžete použít pidof , jednoduchý příkaz k vytištění PID procesu:

$ pidof firefox$ pidof python$ pidof cinnamon

Vraťme se k našemu bodu zaměření, za předpokladu, že již znáte PID procesu, můžete vytisknout jeho název pomocí příkazového formuláře níže:

Formát $ ps -p PID -o 

Kde:

  1. -p určuje PID
  2. -o format umožňuje uživatelsky definovaný formát

Zjistěte název procesu pomocí čísla PID

V této části uvidíme, jak zjistit název procesu pomocí jeho čísla PID pomocí uživatelem definovaného formátu, tj. comm= což znamená název příkazu, stejný jako název procesu.

$ ps -p 2523 -o comm=$ ps -p 2295 -o comm=

Další informace o použití a možnosti naleznete v ps man stránku.

$ man ps

Pokud chcete zabít proces pomocí jeho PID čísla, doporučuji vám přečíst si Find and Kill Linux Processes Using its PID.

To je pro tuto chvíli vše, pokud znáte nějaký jiný lepší způsob, jak zjistit název procesu pomocí PID , podělte se s námi prostřednictvím naší sekce komentářů níže.


Linux
  1. Jak najít a zabít zombie proces v Linuxu

  2. Linux – Jak najít procesy pomocí sériového portu?

  3. Jak zabít proces v Linuxu pomocí příkazu?

  1. Jak najdu ID procesu v Ubuntu?

  2. Jak zjistit, který proces používá soubor v Linuxu?

  3. Jak získat PID podle názvu procesu?

  1. Jak najít soubory v Linuxu

  2. Název procesu z jeho pid v linuxu

  3. Jak mohu spočítat počet složek na jednotce pomocí Linuxu?