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
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/1Zobrazit 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 auxZobrazit běžící procesy s PIDUSER 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 -oKde:
-p
určuje PID-o
format umožňuje uživatelsky definovaný formátZjistě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 psPokud 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.
Jak převést soubory do kódování UTF-8 v Linuxu 5 způsobů, jak najít popis a umístění „binárního příkazu“ v systému souborůLinux