Quando eu grep para um processo java, fico abaixo da saída, mas é limitado a 4096 caracteres, o que resulta no nome do processo real (que é kafka.Kafka) não mostrado na grep
saída.
Isso é uma limitação do grep? Existe alguma maneira de imprimir caracteres além do limite 4096?
ps -ef | grep java
java -Xmx6G -Xms6G -server -XX: + UseG1GC -XX: MaxGCPauseMillis = 20 -XX: InitiationHeapOccupancyPercent = 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 = arquivo: ./../ 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 .jar:/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
fonte
jps
mostra classname independentemente da truncagem de linha de comando (pelo menos no Linux).ps -ef
imprime mais, mas grep é o que está mudando. Isso parece ... infundado.Respostas:
Isso não é uma limitação
grep
, mas de/proc/PID/cmdline
(tecnicamente, uma decisão de design, não uma limitação)./proc/PID/cmdline
contém a linha de comando completa do processo, com o comando principal e os argumentos separados por ASCII NUL, e o arquivo termina em NUL também. Portanto,grep
imprimirá todo o conteúdo do arquivo, se houver uma correspondência. (ps -ef
obtém o conteúdo deste arquivo comoCMD
).O comprimento máximo é codificado no kernel (Linux) para
PAGE_SIZE
:daqui 4096 bytes para tal sistema:
Além disso, se você tiver caracteres multibyte, o número de caracteres seria menor que 4096, como você pode imaginar.
fonte
PAGE_SIZE
: é uma propriedade do hardware. Você precisaria projetar um novo hardware com um tamanho de página maior ou (muito mais fácil ...) remover a limitação de que o conteúdocmdline
é truncado para uma página implementando o mapeamento ou cópia de memória adequada.proc_pid_cmdline
não usa PAGE_SIZE