Comment puis-je obtenir des informations illimitées de pstree?

1

J'utilise pstreepour regarder une séquence de scripts et même lorsque -plaje l' utilise , je reçois des versions abrégées des arguments et des noms de script. Par exemple:

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

Comme vous pouvez le voir verLongNameForJob2.shest coupé, je ne reçois pas le chemin complet /yet/another/long/path/to/a/4th/location/that/I/need/to/lookAt/file4.txtet je suis aussi /path/to/yet/another/location/of/some/other/file/that/I/also/need/to/see/file3.txtconcaténé avec /yet/another/long/path/to/a/4th/location/that/I/need/to/lookAt/file4.txt. Comment obtenir des noms de script complets avec des noms d'argument complets sans concaténation, même s'ils sont très longs?

Voici les scripts que j'ai utilisés pour cela:

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
drjrm3
la source

Réponses:

0

J'ai reproduit le problème avec pstreemon Ubuntu 16.04.2 LTS. J'avais besoin de chemins beaucoup plus longs, mais quand même.

Des outils comme pstreeutiliser /procpour recueillir des informations, alors lisez /proc/<PID>/cmdline. C'est une malchance si l'information y est tronquée. Mais il se peut que vous n'atteigniez que la limite de votre pstreeimplémentation.

Dans mon cas, /proc/<PID>/cmdlineje n’ai pas été réduit lorsque j’ai franchi la limite pstree.

Une autre bonne nouvelle est que les arguments /proc/<PID>/cmdlinesont séparés par des caractères NULL ( 0x00).

Kamil Maciorowski
la source