如何使用进程名从正在运行的进程中获取命令参数或整个命令行?
例如,这个过程:
# ps
PID USER TIME COMMAND
1452 root 0:00 /sbin/udhcpc -b -T 1 -A 12 -i eth0 -p /var/run/udhcpc.eth0.pid我想要的是/sbin/udhcpc -b -T 1 -A 12 -i eth0 -p /var/run/udhcpc.eth0.pid或者论点。我知道进程的名称,并想要它的论点。我在SliTaz上使用Busybox。
发布于 2017-10-09 07:13:56
知道PID,只需执行
cat /proc/pid/cmdline
例如,对于PID = 127
# cat /proc/127/cmdline ; echo ""
/usr/lib/jvm/jdk-8-oracle-x64//bin/java-Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djava.library.path=/usr/lib/jni-javaagent:/jmxtrans-agent-1.2.2.jar=/opt/tomcat/conf/jmxtrans-agent.xml-Dcom.sun.management.jmxremote.port=5000-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false-Djava.endorsed.dirs=/opt/tomcat/endorsed-classpath/opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar-Dcatalina.base=/opt/tomcat-Dcatalina.home=/opt/tomcat-Djava.io.tmpdir=/opt/tomcat/temporg.apache.catalina.startup.Bootstrapstart
#发布于 2020-01-09 14:30:21
如果您喜欢短命令,并且可以使用pgrep,我建议使用pgrep -fl <process_name>。
ps -o args被截断
发布于 2022-05-10 08:14:28
pgrep -a <name>
在你的例子中:
pgrep -a udhcpc
pgrep不截断行,但ps截断行。
对于那些坚持使用ps的人,请这样做以避免截断:
ps <processID> | tee
https://unix.stackexchange.com/questions/163145
复制相似问题