How to get all process ids without ps command on Linux?
On Linux, all running process have "metadata" stored in the /proc filesystem.
# for exe in /proc/*/exe; do ls -l $exe; done

# man ps

# ps -C sshd --no-header
# ps -C dockerd --no-header
-C cmdlist
Select by command name. This selects the processes whose executable name is given in cmdlist.
you can use the long options --headers and --no-headers to enable printing headers each page or disable headers entirely, respectively.

# ps -eo nlwp,pcpu,user,pid,ppid,args --sort nlwp
注:以 nlwp排序,默认正序
LWP -- 轻量级进程,即线程
NLWP --线程数,即 number of threads in process

# ps -eo pid,cmd,%mem,%cpu --sort=-%mem
Thecommand is highly valuable for system admins during troubleshooting the system.
You can display the processes list in a sorted manner to find out the highest memory usage processes.

# ps -mp ${pid} -o THREAD,tid,time
参数解释:
-m:显示所有的线程
-p:pid进程使用CPU的时间
-o:该参数后是用户自定义格式。
如:THREAD,tid,time表示线程、线程ID号、线程占用的时间。
$ ps -Hp ${pid}



参考
ps(1) — Linux manual page
https://man7.org/linux/man-pages/man1/ps.1.html
Linux PS command with examples
https://www.fosslinux.com/43296/linux-ps-command-with-examples.htm
How to get all process ids without ps command on Linux?
https://stackoverflow.com/questions/32913424/how-to-get-all-process-ids-without-ps-command-on-linux
What is the difference between ps and top command?
https://unix.stackexchange.com/questions/62176/what-is-the-difference-between-ps-and-top-command
本文介绍了如何在Linux系统中通过/proc文件系统获取所有运行进程的ID,以及使用不同的ps命令选项来筛选和排序进程,如按CPU使用率、内存使用率等进行排序。同时,还提供了不依赖ps命令获取进程ID的方法。
1661

被折叠的 条评论
为什么被折叠?



