linux pid Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°
ΠΠ°ΠΊ ΡΠ·Π½Π°ΡΡ PID ΠΏΡΠΎΡΠ΅ΡΡΠ° Π² Linux
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π΅ΠΌΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠΈΠ³Π½Π°Π» ΠΈΠ»ΠΈ Π·Π°Π²Π΅ΡΡΠΈΡΡ.
Π Linux ΡΠ°ΠΊΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ PID, ΠΈ ΡΠ·Π½Π°ΡΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠ·Π½Π°ΡΡ PID ΠΏΡΠΎΡΠ΅ΡΡΠ° Π² Linux, Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΡΠ΅ΠΌ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ.
ΠΠ°ΠΊ ΡΠ·Π½Π°ΡΡ pid ΠΏΡΠΎΡΠ΅ΡΡΠ° Linux
ps aux | grep ΠΈΠΌΡ_ΠΏΡΠΎΡΠ΅ΡΡΠ°
ΠΡΠΎΠΌΠ΅ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ Π½Π°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΡΡΠΈΠ»ΠΈΡΠ° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ²Π΅Π΄Π΅Ρ PID Π΄Π»Ρ grep, Π²Π΅Π΄Ρ ΠΏΡΠΎΡΠ΅ΡΡ Π±ΡΠ» Π·Π°ΠΏΡΡΠ΅Π½ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠΈΡΠΊΠ°. Π§ΡΠΎΠ±Ρ Π΅Π³ΠΎ ΡΠ±ΡΠ°ΡΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠ»ΡΡΡ:
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ·Π½Π°ΡΠΌ PID Π²ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΈΠΌΡ ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»ΠΎΠ²ΠΎ «Apache»:
2. pgrep
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ΅, Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ PID, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈΠ»ΠΈΡΡ pgrep:
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΈΠ»ΠΈΡΠ° ΠΈΡΠ΅Ρ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΊΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΡΠΎ Π½Π°Π΄ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΎΠΏΡΠΈΡ -f:
3. pidof
ΠΡΠ° ΡΡΠΈΠ»ΠΈΡΠ° ΠΈΡΠ΅Ρ PID ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ. ΠΠΈΠΊΠ°ΠΊΠΈΡ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ, ΠΈΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΠΈΡΠΊΠΎΠΌΡΠΌ:
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΡΠΈΠΈ -s ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΡΠΈΡΡ ΡΡΠΈΠ»ΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ PID:
4. pstree
Π£ΡΠΈΠ»ΠΈΡΠ° pstree ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΡΠ°ΠΊΠΆΠ΅ ΠΈΡ pid-ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Apache:
ΠΠ°ΠΊ ΡΠ·Π½Π°ΡΡ PID ΡΠΊΡΠΈΠΏΡΠ°
ΠΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΡΠΊΡΠΈΠΏΡ Π² ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Bash Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΊΡΠΈΠΏΡΠ°. Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ PID ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Bash, Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠΉ Π΄Π»Ρ ΡΠΊΡΠΈΠΏΡΠ°, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $$. ΠΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π΅Π΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ:
ΠΠ°ΠΊΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ Π·Π°Π½ΡΡ ΡΠ°ΠΉΠ» Linux
ΠΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ PID ΠΏΡΠΎΡΠ΅ΡΡΠ° Linux ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ, Π° ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ·Π½Π°Π΅ΠΌ PID ΠΏΠΎ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡΠ°ΠΉΠ», Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π°ΠΌ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ lsof ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ» Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠΊΡΠΎΠ΅ΠΌ Π°ΡΠ΄ΠΈΠΎ-ΡΠ°ΠΉΠ» Π² ΠΏΠ»Π΅Π΅ΡΠ΅ totem, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΅Ρ ΡΠ°ΠΉΠ»:
ΠΠ΄Π΅ΡΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ» ΠΈ PID ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠΎΡΠ»Π΅ PID ΠΈΠ΄ΡΡ ΠΎΠ΄Π½Π° Π±ΡΠΊΠ²Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΠ°ΠΏΠΊΠΎΠΉ:
ΠΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΠ°ΠΉΠ» Π² Linux
Π£Π·Π½Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΠΉΡΠ°Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΡΠ°ΠΉΠ», Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ. ΠΠΎ ΠΊΠ°ΠΊ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ Π½Π΅ Π½Π°Π΄ΠΎΠ»Π³ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ»ΠΈ ΡΠΈΡΠ°Π΅Ρ ΠΎΡΡΡΠ΄Π° Π΄Π°Π½Π½ΡΠ΅? ΠΡΠ° Π·Π°Π΄Π°ΡΠ° ΡΠΆΠ΅ ΡΡΡΠ΄Π½Π΅Π΅, Π½ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ΅ΡΠ°Π΅ΠΌΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΄ΡΠ° auditd. Π CentOS Π½Π°Π±ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π² Ubuntu ΠΆΠ΅ Π΅Π³ΠΎ ΠΏΡΠΈΠ΄ΡΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
sudo apt install auditd
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°ΡΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΡΠ»Π΅Π΄ΠΈΠΌ, ΠΊΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΡΠΈΠ»ΠΈΡΡ who:
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· who ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² Π»ΠΎΠ³Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ausearch:
ps aux | grep 15595
Π‘ΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ ΡΡΠΎ bash.
ΠΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠΎΡΡ Π² Linux
ΠΠ½ΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ·Π½Π°ΡΡ PID Linux-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΏΠΎΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 80. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈΠ»ΠΈΡΡ ss:
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Apache. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π² ΠΎΠΏΡΠΈΡ dport, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΏΠΎΡΡ:
ΠΡΠ²ΠΎΠ΄Ρ
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠ·Π½Π°ΡΡ PID ΠΏΡΠΎΡΠ΅ΡΡΠ° Π² Linux ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ: ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Ρ. ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π²ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ, ΠΈ Π² ΡΡΠΈΡΠ°Π½Π½ΡΠ΅ ΠΌΠΈΠ½ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Ρ Π²Π°ΡΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΠΈ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π° ΡΡΠΎ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ.
9 ΡΠ°ΠΌΡΡ ΠΏΡΠΎΡΡΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ·Π½Π°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° (PID) Π² Linux
Linux GUI ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΡ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ, Π½ΠΎ CLI β ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ kill.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° PID?
PID ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎΠΌ ΡΠ΄Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Linux, Unix, macOS ΠΈ Windows.
ΠΡΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
ΠΡΠΎΡΠ΅ΡΡ β ΡΡΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
PID Π΄Π»Ρ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π΄Π΅Π²ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π° pidof, ΠΊΠΎΠΌΠ°Π½Π΄Π° pgrep, ΠΊΠΎΠΌΠ°Π½Π΄Π° ps, ΠΊΠΎΠΌΠ°Π½Π΄Π° pstree, ΠΊΠΎΠΌΠ°Π½Π΄Π° ss, ΠΊΠΎΠΌΠ°Π½Π΄Π° netstat, ΠΊΠΎΠΌΠ°Π½Π΄Π° lsof, ΠΊΠΎΠΌΠ°Π½Π΄Π° fuser ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° systemctl.
Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° Apache Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ.
ΠΠ΅ΡΠΎΠ΄-1: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ pidof
pidof ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ° Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ½ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄.
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ, ΠΌΡ ΡΠ·Π½Π°Π΅ΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° Apache2 ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΡ Debian 9.
ΠΠ· Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΡΡΡΠ΄Π½ΠΎΡΡΡΠΌΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²ΡΠ΅ PID (Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ) Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°.
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΡΡΠ½ΠΈΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ PID (PPID), ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΈΡΠ΅ΠΌ.
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ. Π ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ 3754, ΠΈ ΠΎΠ½ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ±ΡΠ²Π°Π½ΠΈΡ.
Π‘ΠΏΠΎΡΠΎΠ±-2: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ pgrep
pgrep ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌ Π²ΡΠ±ΠΎΡΠ° Π΄Π»Ρ stdout.
ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΠ²ΠΎΠ΄, Π½ΠΎ ΡΡΠΎΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ, ΡΡΠΎ ΡΡΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ PID ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ.
Π ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ 3754.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ pidof & pgrep.
ΠΠ΅ΡΠΎΠ΄-3: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ pstree
pstree ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π΄Π΅ΡΠ΅Π²ΠΎ.
ΠΠ΅ΡΠ΅Π²ΠΎ ΠΊΠΎΡΠ΅Π½ΠΈΡΡΡ Π»ΠΈΠ±ΠΎ Π² pid, Π»ΠΈΠ±ΠΎ Π² init, Π΅ΡΠ»ΠΈ pid ΠΎΠΏΡΡΠ΅Π½.
ΠΡΠ»ΠΈ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ pstree, ΡΠΎΠ³Π΄Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
pstree Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠ΅ Π²Π΅ΡΠ²ΠΈ, ΠΏΠΎΠΌΠ΅ΡΠ°Ρ ΠΈΡ Π² ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ ΠΈ ΠΏΡΠ΅ΡΠΈΠΊΡ Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠΉ.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΎΡΠΌΠ°Ρ.
ΠΠΎΠΌΠ°Π½Π΄Π° pstree ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠ°Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡΡ
ΠΠ΅ΡΠΎΠ΄-4: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ps
ps ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²ΡΠ±ΠΎΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ².
ΠΠ½ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° (pid = PID), ΡΠ΅ΡΠΌΠΈΠ½Π°Π», ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ (tname = TTY), ΠΊΡΠΌΡΠ»ΡΡΠΈΠ²Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π² ΡΠΎΡΠΌΠ°ΡΠ΅ [DD-] hh: mm: ss (time = TIME) ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ΅ ΠΈΠΌΡ (ucmd = Π¦ΠΠ).
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ» Π½Π΅ ΡΠΎΡΡΠΈΡΡΠ΅ΡΡΡ.
ΠΠ· Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄Π° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° (PPID) Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄Π°ΡΡ Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΡΠ΅ΡΡΠ°.
Π ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΡΠ΅ΡΡ apache2 Π±ΡΠ» Π·Π°ΠΏΡΡΠ΅Π½ @ Dec11, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ, Π° Π΄ΡΡΠ³ΠΈΠ΅ β Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌΠΈ. PID apache2 ΡΠ°Π²Π΅Π½ 3754.
ΠΠ΅ΡΠΎΠ΄-5: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ss
ss ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΡΠΎΠΊΠ΅ΡΠΎΠ².
ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ netstat.
ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ TCP ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, Π½Π΅ΠΆΠ΅Π»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ.
ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΈΠΏΠΎΠ² ΡΠΎΠΊΠ΅ΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ PACKET, TCP, UDP, DCCP, RAW, Π΄ΠΎΠΌΠ΅Π½ Unix ΠΈ Ρ. Π΄.
ΠΠ΅ΡΠΎΠ΄-6: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ netstat
netstat β Π²ΡΠ²ΠΎΠ΄ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΡΠ°Π±Π»ΠΈΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ, ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΌΠ°ΡΠΊΠ°ΡΠ°Π΄ΠΈΠ½Π³Π° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ°Π΄ΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΡΠ»ΠΊΠΈ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ netstat ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΎΡΠΊΡΡΡΡΡ ΡΠΎΠΊΠ΅ΡΠΎΠ².
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ² Π°Π΄ΡΠ΅ΡΠΎΠ², Π±ΡΠ΄ΡΡ Π²ΡΠ²Π΅Π΄Π΅Π½Ρ Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΠΎΠΊΠ΅ΡΡ Π²ΡΠ΅Ρ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ² Π°Π΄ΡΠ΅ΡΠΎΠ².
ΠΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΡΠ°ΡΠ΅Π»Π°. ΠΠ°ΠΌΠ΅Π½Π° Π΄Π»Ρ netstat β ss.
ΠΠ΅ΡΠΎΠ΄-7: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ lsof
lsof β ΡΠΏΠΈΡΠΎΠΊ ΠΎΡΠΊΡΡΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΠΎΠΌΠ°Π½Π΄Π° lsof Linux Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ , ΠΎΡΠΊΡΡΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.
ΠΠ΅ΡΠΎΠ΄-8: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ fuser
Π£ΡΠΈΠ»ΠΈΡΠ° fuser Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΊΡΡΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΠ΅ΡΠΎΠ΄-9: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ systemctl
systemctl β Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ systemd ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠΌ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ².
ΠΡΠΎ Π·Π°ΠΌΠ΅Π½Π° ΡΡΠ°ΡΠΎΠ³ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ SysV ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Linux Π±ΡΠ»ΠΈ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½Ρ systemd.
ΠΠ΅Π½ΡΠ΅ΠΌ PID ΠΏΡΠΎΡΠ΅ΡΡΠ° Π² Linux Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ°
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ°, ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ PID ΡΠΆΠ΅ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π² ΠΠ‘ Linux, Π° ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ, ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠΈΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΉ PID.
ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: ΡΠΌΠ΅Π½Π° PID β Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΈ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠ°Π½ΠΈΠΊΠ΅ ΡΠ΄ΡΠ°.
ΠΠ°Ρ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ /dev/test, ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ PID. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΏΠ°ΡΠΈΠ±ΠΎ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅. ΠΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΈ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠ°ΠΌΡΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ»ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² Π² ΡΠ°ΠΌΠΎ ΡΠ΄ΡΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠ΄ΡΠ°.
ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅
ΠΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡ Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ VirtualBox Ρ 64 Π±ΠΈΡΠ½ΡΠΌ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠΌLInux ΠΈ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΡΠ΄ΡΠ° 4.14.4-1. Π‘Π²ΡΠ·Ρ Ρ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ SSH.
ΠΠΎΠΏΡΡΠΊΠ° #1 ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅
ΠΠ°ΡΡ ΡΠ»ΠΎΠ² ΠΎ current: ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ current ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΡΡΡΠΊΡΡΡΡ task_struct Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π² ΡΠ΄ΡΠ΅(PID, UID, GID, cmdline, namespaces ΠΈ Ρ.Π΄)
ΠΠ΅ΡΠ²ΠΎΠΉ ΠΈΠ΄Π΅Π΅ΠΉ Π±ΡΠ»ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ current->pid ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ° Π½Π° Π½ΡΠΆΠ½ΡΠΉ.
ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ Π½Π°ΠΏΠΈΡΠ°Π» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° C++:
ΠΠ°Π³ΡΡΠ·ΠΈΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΊΠΎΠΌΠΌΠ°Π½Π΄ΠΎΠΉ insmod, ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ /dev/test ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ.
PID Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ PID.
ΠΠΎΠΏΡΡΠΊΠ° #2 Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ PID
ΠΡΠ»ΠΈ Π½Π΅ current->pid ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΡΠΎ ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ? ΠΡΡΡΡΡΠΉ ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΊΠΎΠ΄Π° getpid() Π½Π°Π²Π΅Π» Π½Π° ΡΡΡΡΠΊΡΡΡΡ task_struct, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Linux ΠΈ ΡΠ°ΠΉΠ» pid.c Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΡΠ΄ΡΠ°. ΠΡΠΆΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ β __task_pid_nr_ns. Π ΠΊΠΎΠ΄Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ task->pids[type].pid, ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π» Ρ ΠΏΠΎ SSH, ΠΌΠ½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄ΠΎ ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΡΠ΄ΡΠ°:
ΠΠ΅ΡΠ²ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΡΠΆΠ΅ ΡΡΠΎ-ΡΠΎ. ΠΠΎ PID Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ.
ΠΠΎΠΏΡΡΠΊΠ° #3 Π½Π΅ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠ΄ΡΠ°
ΠΠΎΠ»Π΅Π΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ pid.c Π΄Π°Π»ΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄Π΅Π»Π°Π΅Ρ ΡΠΎ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ
static void __change_pid(struct task_struct *task, enum pid_type type,
struct pid *new)
Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π°Π΄Π°ΡΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Π΄ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ PID, ΡΠΈΠΏ PID ΠΈ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, Π½ΠΎΠ²ΡΠΉ PID. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ PID Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ
struct pid *alloc_pid(struct pid_namespace *ns)
PID ΠΈΠ·ΠΌΠ΅Π½Π΅Π½! Π―Π΄ΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΄Π΅Π»ΠΈΠ»ΠΎ Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΉ PID. ΠΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ PID, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π½ΡΠ» Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ PID 1? ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠΎΡΠ»Π΅ Π°Π»Π»ΠΎΠΊΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄
ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ Π½Π°ΡΡΠΎΡΡΠΈΠΉ PID 1!
Bash Π²ΡΠ΄Π°Π» ΠΎΡΠΈΠ±ΠΊΡ, ΠΈΠ·-Π·Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ ΠΏΠΎ ΠΊΠΎΠΌΠΌΠ°Π½Π΄Π΅ %n, Π½ΠΎ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎ.
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΌ PID
PID 0: Π²ΠΎΠΉΡΠΈ Π½Π΅Π»ΡΠ·Ρ Π²ΡΠΉΡΠΈ
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΠΊΠΎΠ΄Ρ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ PID Π½Π° 0.
newpid->numbers[0].nr = 0;
ΠΠΎΠΌΠΏΠ»ΠΈΡΡΠ΅ΠΌ, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ
ΠΡΡ ΠΎΠ΄ΠΈΡ PID 0 Π½Π΅ ΡΠ°ΠΊΠΎΠΉ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΡΠΉ? Π Π°Π΄ΡΠ΅ΠΌΡΡ, ΠΏΠΈΡΠΌ exit ΠΈβ¦
Π―Π΄ΡΠΎ ΠΏΠ°Π΄Π°Π΅Ρ! Π―Π΄ΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΎ Π½Π°ΡΡ Π·Π°Π΄Π°ΡΡ ΠΊΠ°ΠΊ IDLE TASK ΠΈ, ΡΠ²ΠΈΠ΄Π΅Π² Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΎΡΡΠΎ ΡΠΏΠ°Π»ΠΎ. ΠΠΈΠ΄ΠΈΠΌΠΎ, ΠΏΠ΅ΡΠ΅Π΄ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π΅ΡΠ½ΡΡΡ ΡΠ΅Π±Π΅ Β«Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉΒ» PID.
ΠΡΠΎΡΠ΅ΡΡ-Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΊΠ°
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΠΊΠΎΠ΄Ρ ΠΈ Π²ΡΡΡΠ°Π²ΠΈΠΌ PID, Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ Π½Π΅ Π·Π°Π½ΡΡΡΠΉ
newpid->numbers[0].nr = 12345;
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² /proc
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ /proc Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π°Ρ ΠΏΡΠΎΡΠ΅ΡΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΌΡ Π·Π°Π½ΡΠ»ΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΉ PID. ΠΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ PID ΡΠΎΠΆΠ΅ Π½Π΅Ρ Π² /proc, ΠΈ ΡΡΠΎ Π²Π΅ΡΡΠΌΠ° ΡΡΡΠ°Π½Π½ΠΎ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΡ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ Π²ΠΈΠ΄Π½Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌΡ /proc. Π‘ΠΌΠΎΠ½ΡΠΈΡΡΠ΅ΠΌ Π½ΠΎΠ²ΡΠΉ /proc, ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΎ ΡΠ°ΠΌ
ΠΠΎ ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π½Π΅Ρ, Π° Π·Π½Π°ΡΠΈΡ ΠΌΡ Π² ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½. ΠΡΠΎΠ²Π΅ΡΠΈΠΌ
Π’ΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ bash, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ PID, Π½ΠΈ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π² ΡΠΏΠΈΡΠΊΠ΅ Π½Π΅Ρ.
Π£Π±ΠΈΠ²Π°Π΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΡ Π² Linux β ΠΊΠΎΠΌΠ°Π½Π΄Ρ ps, kill ΠΈ killall
ΠΠΎΠ΄ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΏΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΡΠΊΡΡΠ»ΠΈ ΡΡΠΈ ΠΎΠΊΠ½Π° ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, gcalctool), ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π²Ρ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈ ΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°.
ΠΠ°Ρ ΠΎΠ΄ΠΈΠΌ PID Π·Π°Π²ΠΈΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π² Linux ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ PID. ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΅Π³ΠΎ PID. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ps ΠΈ grep. ΠΠΎΠΌΠ°Π½Π΄Π° ps ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΏΠΈΡΠΊΠ° Π°ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π½ΠΈΡ . ΠΠΎΠΌΠ°Π½Π΄Π° grep Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ ps (Π² ΠΊΠ°Π½Π°Π»Π΅) ΠΈ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ps. ΠΡΠ²Π΅ΡΡΠΈ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅:
ΠΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠΏΠΈΡΠΎΠΊ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΈ Π½Π°ΠΉΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Β«ΡΠ±ΠΈΡΡΒ», Π±ΡΠ²Π°Π΅Ρ Π½Π΅ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ. ΠΠ΄Π΅ΡΡ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° grep. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ gcalctool Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠΎΠΌΠ°Π½Π΄Π° grep Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ps ΠΈ Π½Π° ΡΠΊΡΠ°Π½ Π±ΡΠ΄ΡΡ Π²ΡΠ²Π΅Π΄Π΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΡΡΠΎΠΊΡ (ΡΠ»ΠΎΠ²ΠΎ) gcalctool. ΠΠ΄Π΅ΡΡ Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ Π΄Π΅ΡΠ°Π»Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ gcalctool, ΡΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ps axu | grep gcalctool Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅:
Π’ΠΎ Π΅ΡΡΡ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠ°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ grep, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΌΡ ΡΠΊΠ°Π·Π°Π»ΠΈ ΡΠ»ΠΎΠ²ΠΎ gcalctool, ΠΈ grep Π½Π°ΡΠ΅Π» ΡΠ°ΠΌ ΡΠ΅Π±Ρ Π² Π²ΡΠ²ΠΎΠ΄Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ps.
ΠΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ gcalctool Π·Π°ΠΏΡΡΠ΅Π½, ΡΠΎ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ:
ΠΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ·Π½Π°ΡΡ PID ΠΏΡΠΎΡΠ΅ΡΡΠ° β ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° pidof, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π΅Π³ΠΎ PID. ΠΡΠΈΠΌΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ pidof:
Β«Π£Π±ΠΈΠ²Π°Π΅ΠΌΒ» ΠΏΡΠΎΡΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ kill
Π‘ΠΈΠ³Π½Π°Π» SIGTERM ΠΌΠΎΠΆΠ΅Ρ ΠΈ Π½Π΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ΅ ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ΅ ΡΠΈΠ³Π½Π°Π»Π°), SIGKILL ΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π²ΡΠ΅Π³Π΄Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π½Π΅Π»ΡΠ·Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠΈΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ.
Π£Π±ΠΈΠ²Π°Π΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ killall
ΠΠΎΠΌΠ°Π½Π΄Π° killall Π² Linux ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ Β«ΡΠ±ΠΈΠΉΡΡΠ²Π°Β» Π²ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΈΠΌΠ΅ΡΡΠΈΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΠΈΠΌΡ. ΠΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ PID ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π·Π°ΠΊΡΡΡΡ Π²ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ gcalctool. ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅:
ΠΠΎΠΌΠ°Π½Π΄Π° killall, ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ kill, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ»Π΅Ρ ΡΠΈΠ³Π½Π°Π» SIGTERM. Π§ΡΠΎΠ±Ρ ΠΏΠΎΡΠ»Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠ³Π½Π°Π» Π½ΡΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠΏΡΠΈΠ΅ΠΉ -s. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π΅ ΡΠ΄Π°Π΅ΡΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΠ΄ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ Π±ΡΠ» Π·Π°ΠΏΡΡΠ΅Π½ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ root ΠΈΠ»ΠΈ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ kill ΠΈ killall Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠΏΠ΅ΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π΄ΠΎΠ±Π°Π²Π»ΡΡ sudo (Π² Ubuntu):
ΠΡΠ²Π°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, GNOME) ΠΈ Π²Π°ΠΌ Π½Π΅ ΡΠ΄Π°Π΅ΡΡΡ ΠΎΡΠΊΡΡΡΡ ΡΠΌΡΠ»ΡΡΠΎΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π°Π²ΠΈΡΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ. Π’ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΊΠ»Π°Π²ΠΈΡΠ°ΠΌΠΈ Ctrl+Alt+F1, Π·Π°Π»ΠΎΠ³ΠΈΠ½ΠΈΡΡΡΡ Π² Π½Π΅ΠΉ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΆΠ΅ ΠΈΠ· Π½Π΅Π΅. Π ΠΏΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ, Π½Π°ΠΆΠ°Π² Ctrl+Alt+F7.
Π‘ΠΏΡΠ°Π²ΠΊΡ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ man:
pid ΠΏΡΠΎΡΠ΅ΡΡΠ°
ΠΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡ ΠΠ°Ρ ΡΠΎΡΡΠΌΡΠ°Π½Π΅. ΠΡΠΎΡΡ ΠΏΠΎΠΌΠΎΡΠΈ. ΠΠ΅ ΠΏΠΈΠ½Π°ΠΉΡΠ΅. Π‘ Π»ΠΈΠ½ΡΡ ΠΎΠΌ ΠΏΠΎΠΊΠ° Π·Π½Π°ΠΊΠΎΠΌ Π½Π΅ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ. ΠΡΠ°ΠΊ. ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΠ‘ (ubuntu 16.04) Π½ΡΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ pid ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ pid ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ poweroff. Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Π²ΡΡ Π·Π°Π΄Π°ΡΠ°. ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΡΠΊΠ»ΠΎΠΌ Π² ΡΠΊΡΠΈΠΏΡΠ΅. ΠΠΎ ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π΅ΡΡΡ ΡΠΏΠΎΡΠΎΠ± ΡΠ»Π΅Π³Π°Π½ΡΠ½Π΅Π΅. ΠΠ°ΡΠ°Π½Π΅Π΅ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π²ΡΠ΅Ρ ΠΊΡΠΎ ΠΎΡΠΊΠ»ΠΈΠΊΠ½Π΅ΡΡΡ!
Π‘Π½Π°ΡΠ°Π»Π° ΡΠ·Π½Π°ΡΡΡ pid Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠΎΡΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡ:
ΠΡΠΎΡΡ ΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π·Π° ΡΡΠΏΠ½ΡΠΊ. ΠΡΠΎ Π² ΡΠΊΡΠΈΠΏΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ? Π’ΠΈΠΏΠ°:
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ pid ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ poweroff.
pid ΠΏΡΠΎΡΠ΅ΡΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ.
ΠΠ°, ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΡΠ°Π²Π΄Π°, ΡΡΠΎ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Π½Π΅ ΡΠΎ, ΡΡΠΎ ΡΡ Ρ ΠΎΡΠ΅Π». ΠΠΎ ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΡΡ ΠΏΡΠΎΡΠΈΠ». π
ΡΡΠΎ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Π½Π΅ ΡΠΎ, ΡΡΠΎ ΡΡ Ρ ΠΎΡΠ΅Π». ΠΠΎ ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΡΡ ΠΏΡΠΎΡΠΈΠ»
ΠΠΎΠ»ΠΎΡΡΠ΅ ΡΠΈΡΠ°ΡΡ Π»ΠΎΡΠ°
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΠΎΠΌΠΎΡΡ! ΠΠΎ, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠΊΠ»ΡΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏ. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ Π² ΡΠΊΡΠΈΠΏΡΠ΅ Π΅Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈΠ»ΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. PID ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. ΠΠΎΠΆΠ΅Ρ Π² Π½Π΅ΠΉ ΠΎΡΠΈΠ±ΠΊΠ°?
Π ΠΌΡ ΡΠ΄ΡΠΎ ΠΏΡΠΎΠΏΠ°ΡΡΠΈΠΌ.
ΠΠ°ΠΏΡΡΠΊΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΡΠΆΠ΅ Π·Π°ΠΏΡΡΠ΅Π½ process_name
ΠΠΈΠ΄ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Π±Π΅ Π½Π°Π΄ΠΎ ΠΎΡΡΠ΅ΠΆΠΈΠ²Π°ΡΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΠ±ΠΎ ΡΠΌΠ΅Π½Π° ΠΏΠΈΠ΄Π° ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠ°
Π ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠΎ Π±ΡΠ΄ΠΈΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ. Π Π²ΠΎΡ pid ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ° ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. Π― ΡΠΌΠ½Π΅Π΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π» ΠΊΡΠΎΠΌΠ΅ ΠΊΠ°ΠΊ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ pid ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ ΡΡΠΈΡΠ°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠ΅Π½ΡΠΌ. Π Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ poweroff. ΠΠΎΠΎΠ±ΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° xfreerdp Π²ΡΠΏΠΎΠ»Π½ΡΡΡ poweroff. ΠΠΎΠΆΠ΅Ρ Ρ Π·ΡΡ Π²ΡΠ΅ΠΏΠΈΠ»ΡΡ Π² ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ pid?
ΠΠΈΠ±ΠΎ Ρ ΡΠ΅Π±Ρ Π½Π΅Ρ strace ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ, Π»ΠΈΠ±ΠΎ Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ ΠΏΡΠ°Π², ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΡΠ΅ΠΏΠΈΡΡΡΡ ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΡ.
Π·Π°ΠΏΡΡΠΊΠ°ΠΉ
xfreerdp; poweroff
Π‘ΠΌΠ΅Π½Π° ΠΏΠΈΠ΄Π° == ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠ°. Π’Π΅Π±Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ·Π½Π°ΡΡ ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΌΠ΅Ρ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ±Π°ΡΡ. ΠΡΠ»ΠΈ Π½Π°Π΄ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΏΠΈΠ΄, ΠΏΠΎΡΠΎΠΌ Π² ΡΠΈΠΊΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΌ ΡΠΎ Π΄Π΅Π»Π°ΠΉ ΡΠ°ΠΌ ΠΈΠ±ΠΎ ΡΠΎΠ³Π΄Π° ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎ Π·Π°Π΄Π°ΡΠΊΠ° ΠΎΡ ΠΏΡΠ΅ΠΏΠΎΠ΄Π° π
ΠΡΡΠ°Π»ΠΎΡΡ ΠΏΠΎΡΡΠ°ΡΠΈΡΡ ΠΌΠΈΠ½ΡΡ 5-10-15 Π½Π° ΡΠ°Π·Π΄ΡΠΌΡΡ ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΡ ΡΠΊΠ»Π΅ΠΈΡΡ. =) Π£Π΄Π°ΡΠΈ.
ΠΠΎΠΎΠ±ΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° xfreerdp Π²ΡΠΏΠΎΠ»Π½ΡΡΡ poweroff.
ΠΡΠ»ΠΈ xfreerdp Π½Π΅ Π΄Π΅ΠΌΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ, ΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠΉ Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊ xfreerdp, Π° ΠΏΠΎΡΠΎΠΌ poweroff. Π’ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ xfreerdp Π·Π°Π²Π΅ΡΡΠΈΡΡΡ, Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π² ΡΠΊΡΠΈΠΏΡΠ΅, ΡΠΎ Π΅ΡΡΡ poweroff. ΠΡΠ»ΠΈ Π΄Π΅ΠΌΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ, Π½ΡΠΆΠ½ΠΎ ΡΠΌΠΎΡΡΠ΅ΡΡ Π² ΡΡΠΎΡΠΎΠ½Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ°ΠΌ Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΡΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° ΡΠ»ΡΡΠ°ΠΉ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°.
Π’ΠΎ, ΡΡΠΎ ΡΡ Ρ
ΠΎΡΠ΅ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ:
PID ΠΏΡΠΎΡΠ΅ΡΡΠ° Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. ΠΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ, ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡΡΡ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ ΠΏΡΠΎΡΠ΅ΡΡ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ Π΄ΡΡΠ³ΠΈΠΌ PID’ΠΎΠΌ.
ΠΡΠ΅ΠΌ ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΠΎΠΌΠΎΡΡ. ΠΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΡΠΎΠ²Π΅ΡΠΎΠ²Π°Π»ΠΈ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΎΡΠ²Π΅ΡΠ΅ ΡΠ΅ΡΠ΅Π· ΡΠΊΡΠΈΠΏΡ.
Π Π΄Π°, Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΠΈΠ· Π·Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ° strace Π² ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΡΠ΅ ΡΠ°Π· ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ!