第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那种启动命令修改的