第0節:直接上圖觀察介紹
cat /proc/4486/cmdline
nginx: master process /usr/local/nginx/sbin/nginx
cat /proc/4486/stat
4486 (nginx) S 1 4486 4486 0 -1 4202560 151 0 0 0 0 0 0 0 20 0 1 0 120859 18972672 244 18446744073709551615 1 1 0 0 0 0 0 1073745920 402745863 18446744073709551615 0 0 17 0 0 0 0 0 0
cat /proc/4486/status
Name: nginx
State: S (sleeping)
Tgid: 4486
Pid: 4486
PPid: 1
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
Utrace: 0
FDSize: 64
Groups: 0
VmPeak: 18528 kB
VmSize: 18528 kB
VmLck: 0 kB
VmHWM: 976 kB
VmRSS: 976 kB
VmData: 792 kB
VmStk: 84 kB
VmExe: 3236 kB
VmLib: 1896 kB
VmPTE: 52 kB
VmSwap: 0 kB
Threads: 1
SigQ: 1/30823
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000040001000
SigCgt: 0000000198016a07
CapInh: 0000000000000000
CapPrm: ffffffffffffffff
CapEff: ffffffffffffffff
CapBnd: ffffffffffffffff
Speculation_Store_Bypass: vulnerable
Cpus_allowed: 3
Cpus_allowed_list: 0-1
Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 2
nonvoluntary_ctxt_switches: 0
可以看到ps-ef 查看到命令的是 cat /proc/PID/cmdline,在系統內部使用還有 cat /proc/PID/stat, cat /proc/PID/status ;
第一節:先說說 /proc/PID/stat 和 /proc/PID/status的進程名稱修改
inux 下fork創建子進程,但是很多時候我們希望修改自己的子進程名稱,可以使你的程序看起來更加個性化
linux c 下面是有proctl 可以解決這個問題的在fork創建的子進程裏直接進行修改
prctl(PR_SET_NAME,"PURE")
python的一個實現調用
import ctypes
import time
libc = ctypes.CDLL('libc.so.6')
libc.prctl(15, 'pure')
time.sleep(60000)
第二節:如何實現nginx那種啓動命令修改的