Wenn ich nach einem Java-Prozess greife, erhalte ich eine Ausgabe von weniger als 4096 Zeichen, was dazu führt, dass der tatsächliche Prozessname (kafka.Kafka) in der grep
Ausgabe nicht angezeigt wird.
Ist das eine Einschränkung von grep? Gibt es eine Möglichkeit, Zeichen außerhalb der 4096-Grenze zu drucken?
ps -ef | grep java
java -Xmx6G -Xms6G -server -XX: + UseG1GC -XX: MaxGCPauseMillis = 20 -XX: InitiatingHeapOccupancyPercent = 35 -XX: + DisableExplicitGC -Djava.awt.headless = true -Xloggc: / x / kafka / data01 / kafka-app -logs / kafkaServer-gc.log -verbose: gc -XX: + PrintGCDetails -XX: + PrintGCDateStamps -XX: + PrintGCTimeStamps -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate = false -Dcom. sun.management.jmxremote.ssl = false -Dkafka.logs.dir = / x / kafka / data01 / kafka-app-logs -Dlog4j.configuration = Datei: ./../ config / log4j.properties -cp: / x /home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/aopalliance-repackaged-2.4.0-b34.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10 -0.10.1.1 / bin /../ libs / argparse4j-0.5.0.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin /../ libs / connect-api- 0.10.1.1.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/ ../libs/connect-file-0.10.1.1.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/connect-json-0.10.1.1.jar:/ x / home / bmcuser / kafka-paypal / kafka_2.10-0.10.1.1 / bin /../ libs / connect-runtime-0.10.1.1.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10- 0.10.1.1/bin/../libs/guava-18.0.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/hk2-api-2.4.0 -b34.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin /../ libs / hk2-locator-2.4.0-b34.jar: / x / home / bmcuser / kafka-paypal / kafka_2.10-0.10.1.1 / bin /../ libs / hk2-utils-2.4.0-b34.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/ bin /../ libs / jackson-annotations-2.6.0.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin /../ libs / jackson-core-2.6.3 .jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin /../ libs / jackson-databind-2.6.3.jar: / x / home / bmcuser / kafka-paypal / kafka_2.10-0.10.1.1 / bin / ../libs/jackson-jaxrs-base-2.6.3.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jackson-jaxrs-json-provider-2.6 .3.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin /../ libs / jackson-module-jaxb-annotations-2.6.3.jar: / x / home / bmcuser / kafka-paypal / kafka_2.10-0.10.1.1 / bin /../ libs / javassist-3.18.2-GA.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/ bin /../ libs / javax.annotation-api-1.2.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin /../ libs / javax.inject-1.jar : /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin /../ libs / javax.inject-2.4.0-b34.jar: / x / home / bmcuser / kafka-paypal / kafka_2.10-0.10.1.1 / bin /../ libs / javax.servlet-api-3.1.0.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/ .. /libs/javax.ws.rs-api-2.0.1.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jersey-client-2.22.2 .Krug:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jersey-common-2.22.2.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10 -0.10.1.1 / bin /../ libs / jersey-container-servlet-2.22.2.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin /../ libs / jersey-container-servlet-core-2.22.2.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin /../ libs / jersey-guava-2.22.2.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jersey-media-jaxb-2.22.2.jar:/x/home/bmcuser/kafka-paypal/kafka_2 .10-0.10.1.1 / bin /../ libs / jersey-server-2.22.2.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin /../ libs / jetty-continuation-9.2.15.v20160210.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin /../ libs / jetty-http-9.2.15.v20160210.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jetty-io-9.2.15.v20160210.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jetty-security-9.2.15.v20160210.jar:/x/home/bmcuser/kafka-paypal/kafka_2 .10-0.10.1.1 / bin /../ libs / jetty-server-9.2.15.v20160210.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin /../ libs / jetty-servlet-9.2.15.v20160210.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin /../ libs / jetty-servlets-9.2.15.v20160210. jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin /../ libs / jetty-util-9.2.15.v20160210.jar: / x / home / bmcuser / kafka-paypal /kafka_2.10-0.10.1.1/bin/../libs/jopt-simple-4.9.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/ kafka_2.10-0.10.1.1.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin /../ libs / kafka_2.10-0.10.1.1-so/libs/jetty-server-9.2.15.v20160210.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jetty-servlet-9.2.15.v20160210 .jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin /../ libs / jetty-servlets-9.2.15.v20160210.jar: / x / home / bmcuser / kafka- paypal / kafka_2.10-0.10.1.1 / bin /../ libs / jetty-util-9.2.15.v20160210.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/ ../libs/jopt-simple-4.9.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/kafka_2.10-0.10.1.1.jar:/ x / home / bmcuser / kafka-paypal / kafka_2.10-0.10.1.1 / bin /../ libs / kafka_2.10-0.10.1.1-so/libs/jetty-server-9.2.15.v20160210.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jetty-servlet-9.2.15.v20160210 .jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin /../ libs / jetty-servlets-9.2.15.v20160210.jar: / x / home / bmcuser / kafka- paypal / kafka_2.10-0.10.1.1 / bin /../ libs / jetty-util-9.2.15.v20160210.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/ ../libs/jopt-simple-4.9.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/kafka_2.10-0.10.1.1.jar:/ x / home / bmcuser / kafka-paypal / kafka_2.10-0.10.1.1 / bin /../ libs / kafka_2.10-0.10.1.1-so/libs/jetty-util-9.2.15.v20160210.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jopt-simple-4.9.jar:/ x / home / bmcuser / kafka-paypal / kafka_2.10-0.10.1.1 / bin /../ libs / kafka_2.10-0.10.1.1.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10- 0.10.1.1/bin/../libs/kafka_2.10-0.10.1.1-so/libs/jetty-util-9.2.15.v20160210.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jopt-simple-4.9.jar:/ x / home / bmcuser / kafka-paypal / kafka_2.10-0.10.1.1 / bin /../ libs / kafka_2.10-0.10.1.1.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10- 0.10.1.1/bin/../libs/kafka_2.10-0.10.1.1-so
quelle
jps
zeigt Klassenname unabhängig von Kommandozeilen - Abschneiden (zumindest unter Linux).ps -ef
mehr gedruckt wird, aber grep ist das, was es ändert. Das scheint ... unbegründet.Antworten:
Dies ist keine Einschränkung von
grep
, sondern von/proc/PID/cmdline
(technisch gesehen eine Entwurfsentscheidung, keine Einschränkung)./proc/PID/cmdline
Enthält die vollständige Befehlszeile des Prozesses, wobei Hauptbefehl und Argumente durch ASCII-NUL getrennt sind. Die Datei endet ebenfalls mit NUL. Sogrep
wird den gesamten Dateiinhalt drucken , wenn es eine Übereinstimmung gibt. (ps -ef
Liefert den Inhalt dieser Datei alsCMD
).Die maximale Länge ist im (Linux-) Kernel fest codiert für
PAGE_SIZE
:daher 4096 Bytes für ein solches System:
Wenn Sie Multibyte-Zeichen haben, ist die Anzahl der Zeichen weniger als 4096, wie Sie sich vorstellen können.
quelle
PAGE_SIZE
: Es ist eine Eigenschaft der Hardware. Sie müssten neue Hardware mit einer größeren Seitengröße entwerfen oder (viel einfacher…) die Beschränkung aufheben, dass der Inhaltcmdline
einer Seite abgeschnitten wird, indem Sie die richtige Speicherzuordnung oder das richtige Kopieren implementieren.proc_pid_cmdline
PAGE_SIZE