从PID中find命令

有没有可能find正在运行的进程的命令行与其pid/proc/pid/cmdline的输出似乎删除了空格字符,因此很难读取输出。

来自: https : //stackoverflow.com/questions/993452/splitting-proc-cmdline-arguments-with-spaces

  1. cat /proc/PID/cmdline | tr '\000' ' '

  2. cat /proc/PID/cmdline | xargs -0 echo

ps可以显示这个:

ps -o cmd fp <PID>

ps可以做更多。 有关信息,请参阅man ps

把这个脚本放在你的.bashrc文件中,并把它来源

$ source〜/ .bashrc

你可以用命令$ pid来调用它,它把PID作为命令行参数,并给出进程名称,用户(进程所有者)作为输出,例如:

 $ pid 1 2 3 4 5 6 7 8 9 10 PID=1 Command=systemd User=root PID=2 Command=kthreadd User=root PID=3 Command=ksoftirqd/0 User=root PID=5 Command=kworker/0:0H User=root PID=7 Command=rcu_sched User=root PID=8 Command=rcu_bh User=root PID=9 Command=migration/0 User=root PID=10 Command=watchdog/0 User=root 

脚本:

 function pid(){ if [[ $# > 0 ]] then for i in $@ do ps -e -o pid,comm,user | awk '{print "PID="$1, " Command="$2," User="$3}'| egrep --color "^PID=$i\W" done else echo "Syntax: pid <pid number> [<pid number>]" fi }