ฉันจะรับข้อมูลไม่ จำกัด จาก pstree ได้อย่างไร


1

ฉันใช้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

คำตอบ:


0

ฉันจำลองปัญหาด้วยpstreeบน Ubuntu 16.04.2 LTS ของฉัน ฉันต้องการเส้นทางที่ยาวกว่า แต่ก็ยังอยู่

เครื่องมือเช่นpstreeใช้ในการรวบรวมข้อมูลเพื่อให้อ่าน/proc /proc/<PID>/cmdlineมันเป็นความโชคร้ายถ้าข้อมูลถูกตัดทอนที่นั่น แต่อาจเป็นไปได้ว่าคุณถึงขีด จำกัด ของpstreeการใช้งานของคุณเท่านั้น

ในกรณีของฉัน/proc/<PID>/cmdlineก็ไม่ได้ตัดแต่งเมื่อฉันข้ามขีด จำกัด pstreeใน

ข่าวดีก็คือข้อโต้แย้ง/proc/<PID>/cmdlineจะถูกคั่นด้วยอักขระ NULL ( 0x00)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.