I'd like to get the pid from my processes. I do ps aux | cut -d ' ' -f 2
but I notice that sometimes it gets the pid and sometimes it does not:
[user@ip ~]$ ps aux user 2049 0.5 10.4 6059216 1623520 ? Sl date 8:48 process user 12290 0.3 6.9 5881568 1086244 ? Sl date 2:30 [user@ip ~]$ ps aux | cut -d ' ' -f 2 12290 [user@ip ~]$ ps aux | cut -d ' ' -f 3 2049
notice that the first cut
command is piping it to 2
whereas the second one is piping it to 3
. How do I pick out the PID from these without having to know which number to use (2
or 3
)?
Can someone please tell me the difference between these and why it picks up one and not the other?
The ps aux command is a tool to monitor processes running on your Linux system. A process is associated with any program running on your system, and is used to manage and monitor a program's memory usage, processor time, and I/O resources.
A PID is automatically assigned to each process when it is created. A process is nothing but running instance of a program and each process has a unique PID on a Unix-like system. The easiest way to find out if process is running is run ps aux command and grep process name.
-d ' '
means using a single space as delimiter. Since there're 1 space before 2049 and 2 spaces before 12290, your command get them by -f 2
and -f 3
.
I recommend using ps aux | awk '{print $2}'
to get those pids.
Or you can use tr
to squeeze those spaces first ps aux | tr -s ' ' | cut -d ' ' -f 2
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With