是否可以使用 ? 来找到正在运行的进程的命令行pid
? 的输出/proc/${PID}/cmdline
似乎删除了空格字符,因此很难读取输出。
答案1
从:https://stackoverflow.com/questions/993452/splitting-proc-cmdline-arguments-with-spaces
cat /proc/${PID}/cmdline | tr '\000' ' '
cat /proc/${PID}/cmdline | xargs -0 echo
答案2
ps
可以显示这一点:
ps -o cmd fp <PID>
ps
可以做更多。有关信息,请参阅man ps
答案3
例如1
和2
是 PID。
显示命令的最短方式:
ps 1
明确的方式:
ps --pid 1 2
仅显示命令字段:
ps -o cmd 1
ps -o cmd --pid 1 2
文档:man ps
答案4
将此脚本放入您的.bashrc文件并获取它
$ 源 ~/.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
}