Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Note: you can forego the ps and simply read /proc/$PID/cmdline, which is a \0-delimited list of strings. So,

    grep -oP '\-j\x00\d+' /proc/$PID/cmdline
Edit: and no need for sed when a simple cut -b4- does the same job.


If you are willing to use /proc, you basically have Linux, and can assume just as well that your shell is bash.

If so, $$ is the easiest way to get the PID of the current shell. That works in several other shells, too, but I am not sure sh is guaranteed to have it (FreeBSD's sh has it. See http://www.freebsd.org/cgi/man.cgi?query=sh)


Does that work on anything other than Linux?


Not in exactly the same way, but every unixy system has some way of finding the parent pid and looking up its command line.


Is Quanticles's code portable to the other unix systems?


It should work on most systems that have a /proc filesystem: http://en.wikipedia.org/wiki/Procfs

If you don't have /proc but do have ps (1), you could get the parent pid like this:

    PID := $(ps -p $$$$ -o ppid=)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: