Как я могу получить неограниченную информацию от pstree?

238
drjrm3

Я использую pstreeдля просмотра последовательности сценариев, и даже при использовании -plaя получаю сокращенные версии аргументов и имен сценариев. В качестве примера:

sshd,13431 └─bash,13432 └─runJobs.sh,18780 ./runJobs.sh └─job1.sh,18781 ./job1.sh /path/to/location/of/some/file/that/I/need/to/see/file1.txt /path/to/the/location/of/some/other/file/that/I/need/to/see/file2.txt /path/to/yet/another/location/of/some/other/file/that/I/also/need/to/see/file3.txt/yet/another/long/path/to/a/4th/locatio └─veryLongNameFor,18782 ./veryLongNameForJob2.sh Argument1_is_very_long arg2_is_also_quite_long The_name_for_arg3_is_even_longer └─sleep,18783 1000 

Как вы видите verLongNameForJob2.sh, обрезано, я не получаю полный путь, /yet/another/long/path/to/a/4th/location/that/I/need/to/lookAt/file4.txtи я также /path/to/yet/another/location/of/some/other/file/that/I/also/need/to/see/file3.txtс конкатенацией /yet/another/long/path/to/a/4th/location/that/I/need/to/lookAt/file4.txt. Как я могу получить полные имена сценариев вместе с полными именами аргументов без объединения, даже если они очень длинные?

Ниже приведены сценарии, которые я использовал для этого:

runJobs.sh :

#!/bin/bash ### contents of 'runJobs.sh'  arg1=/path/to/location/of/some/file/that/I/need/to/see/file1.txt arg2=/path/to/the/location/of/some/other/file/that/I/need/to/see/file2.txt arg3=/path/to/yet/another/location/of/some/other/file/that/I/also/need/to/see/file3.txt arg4=/yet/another/long/path/to/a/4th/location/that/I/need/to/lookAt/file4.txt  ./job1.sh $arg1 $arg2 $arg3 $arg4 

job1.sh :

#!/bin/bash ### contents of job1.sh  arg1=Argument1_is_very_long  arg2=arg2_is_also_quite_long arg3=The_name_for_arg3_is_even_longer  ./veryLongNameForJob2.sh $arg1 $arg2 $arg3 

veryLongNameForJob2.sh :

#!/bin/bash ### contents of 'veryLongNameForJob2.sh'  sleep 1000 
1

1 ответ на вопрос

0
Kamil Maciorowski

Я повторил эту проблему pstreeна моем Ubuntu 16.04.2 LTS. Мне нужны были более длинные пути, но все же.

Такие инструменты, как pstreeиспользовать /procдля сбора информации, так что читайте /proc/<PID>/cmdline. Это неудача, если информация там усечена. Но может случиться так, что вы достигнете предела своей pstreeреализации только.

В моем случае /proc/<PID>/cmdlineне было обрезано, когда я перешел предел в pstree.

Еще одна хорошая новость - аргументы в /proc/<PID>/cmdlineразделены символами NULL ( 0x00).

Похожие вопросы