416 links
  • Johndescs's mini-recording
  • Home
  • Login
  • RSS Feed
  • ATOM Feed
  • Tag cloud
  • Picture wall
  • Daily
Links per page: 20 50 100
  • thumbnail
    linux - How can a process appear to have different name in ps output? - Unix & Linux Stack Exchange

    Bonne question : comment on fait pour changer le nom d'un process (visible via ps ou /proc). Par exemple, au lieu d'avoir la commande nginx on voit "nginx: worker process".
    Sur cette page, ils disent comment faire en modifiant directement dans argv… ça fonctionne mais ça a l'air crade est pas très souple.
    D'ailleurs pour se marrer on peut le faire avec gdb (une fois à un breakpoint) :
    (gdb) p argv[0]
    $3 = 0x7fffffffe5cf "/home/john/code/a.out"
    (gdb) set {char}0x7fffffffe5cf = 'a'
    Là ça modifie bien /proc/<pid>/cmdline et ps… mais on ne peut pas par exemple malloc et remplir une string et la poser en argv[0] : ça fait juste rien.

    Il y a apparemment prctl (voir https://github.com/electrum/procname) mais ça ne fonctionne que avec "c" comme argument à ps.

    J'ai regardé dans les sources de nginx, ils expliquent bien… mais ça sent le gros gros hack :P
    https://github.com/nginx/nginx/blob/branches/default/src/os/unix/ngx_setproctitle.c
    En tous cas ça fonctionne avec gdb…
    (gdb) b main
    (gdb) r lala
    (gdb) set argv[1] = 0x0
    (gdb) p argv[0]
    $1 = 0x7fffffffe5ca "/home/john/code/a.out"
    (gdb) p strcpy($1, "coucou coincoin lala pouet trucmuche")

    July 20, 2016 at 17:24:25 GMT+2 - permalink -
    QRCode
    - http://unix.stackexchange.com/questions/167490/how-can-a-process-appear-to-have-different-name-in-ps-output
    Linux adminsys dev
Links per page: 20 50 100
Shaarli - The personal, minimalist, super-fast, database free, bookmarking service by the Shaarli community - Help/documentation