shellinabox笔记1----prctl

编程技术  /  houtizong 发布于 3年前   134
prctl给线程命名和线程的一些操作

注意这里命名线程名称为xx
#include <stdlib.h>#include <stdio.h>#include <pthread.h>#include <sys/prctl.h>void* test(void *arg) { char name[32]; prctl(PR_SET_NAME, (unsigned long)"xx"); prctl(PR_GET_NAME, (unsigned long)name); printf("%s/n", name); while (1) sleep(1); } int main(void) { pthread_t tid; pthread_create(&tid, NULL, test, NULL); pthread_join(tid, NULL); return 0; }

编译并运行:

gcc prctl.c -l pthread
./a.out


在另一个终端,通过ps找到a.out的pid:

[root@killinux ~]# ps -ef|grep a.ouroot      9764  8870  0 12:43 pts/2    00:00:00 ./a.outroot      9768  9747  0 12:43 pts/4    00:00:00 grep a.ou[root@killinux ~]# cd /proc/9764[root@killinux 9764]# cd task/[root@killinux task]# ls9764  9765[root@killinux task]# pwd/proc/9764/task[root@killinux task]# cd 9765/[root@killinux 9765]# lsattr    clear_refs  cwd      fd      limits    mem        numa_maps  oom_score_adj  root       sessionid  stat    syscallauxv    cmdline     environ  fdinfo  loginuid  mountinfo  oom_adj    pagemap        sched      smaps      statm   wchancgroup  cpuset      exe      io      maps      mounts     oom_score  personality    schedstat  stack      status[root@killinux 9765]# cat cmdline ./a.out[root@killinux 9765]# 


看命名是否奏效:
两个task的名字都是a.out
看线程名字用,线程的名字“xx”在这

[root@killinux 9764]# ps -L -p 9764
  PID   LWP TTY          TIME CMD
9764  9764 pts/2    00:00:00 a.out
9764  9765 pts/2    00:00:00 xx
[root@killinux 9764]#
-----------------------------------------------------------
stat文件和status文件中也有

[root@killinux 9764]# cat stat
9764 (a.out) S 8870 9764 8870 34818 9764 4202496 172 0 0 0 0 0 0 0 20 0 2 0 176577389 16850944 136 18446744073709551615 4194304 4196556 140734883346416 140734883346080 255523324077 0 0 0 0 18446744071579515721 0 0 17 3 0 0 0 0 0
[root@killinux 9764]# cd -
/proc/9764/task
[root@killinux task]# cd -
/proc/9764/task/9764
[root@killinux 9764]# cd ../9765/
[root@killinux 9765]# cat stat
9765 (xx) S 8870 9764 8870 34818 9764 4202560 17 0 0 0 0 0 0 0 20 0 2 0 176577389 16850944 136 18446744073709551615 4194304 4196556 140734883346416 140599854898320 255519799581 0 0 0 0 18446744071579464804 0 0 -1 0 0 0 0 0 0
[root@killinux 9765]# cat status
Name: xx
State: S (sleeping)
Tgid: 9764
Pid: 9765
PPid: 8870
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
Utrace: 0
FDSize: 256
Groups: 0
VmPeak:    16456 kB
VmSize:    16456 kB
VmLck:        0 kB
VmHWM:      544 kB
VmRSS:      544 kB
VmData:    10440 kB
VmStk:       88 kB
VmExe:        4 kB
VmLib:     1792 kB
VmPTE:       44 kB
VmSwap:        0 kB
Threads: 2
SigQ: 1/62815
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000000
SigCgt: 0000000180000000
CapInh: 0000000000000000
CapPrm: ffffffffffffffff




参考
http://www.cnblogs.com/sunyubo/archive/2010/12/10/2282086.html
这个头文件不全

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客