বাচ্চাদের সহ আমি কীভাবে একটি টার্মিনাল শেলের প্রক্রিয়া গাছ দেখাব?


30

কমান্ড প্রম্পট থেকে কোনও স্ক্রিপ্ট চালু করা হলে শেলটি সেই স্ক্রিপ্টের জন্য একটি উপ-প্রসেস উত্সাহিত করবে। টার্মিনাল স্তর প্রক্রিয়া এবং তার বাচ্চাদের psমধ্যে একটি ট্রি স্টাইল আউটপুট ব্যবহার করে সেই সম্পর্কটি দেখাতে চাই ।
কিভাবে আমি এটি করতে পারব?

আমি এখন পর্যন্ত যা চেষ্টা করেছি

ফাইল: script.sh

#!/bin/bash

ps -f -p$1

তারপরে আমি টার্মিনাল শেলের প্রসেস আইডিতে পাস কমান্ড লাইন থেকে স্ক্রিপ্টটি প্রার্থনা করছি:

$ ./script.sh $$

আমি যা চাই তা এই জাতীয় কিছু

  • শীর্ষ স্তর (টার্মিনাল) শেল প্রক্রিয়া
  • ./script.sh
  • psকমান্ড নিজেই প্রক্রিয়া
USER    PID  [..]
ubuntu 123     -bash
ubuntu 1234    \_ bash ./script.sh
ubuntu 12345      \_ ps auxf 

আমি যা পাচ্ছি তা হ'ল:

  PID TTY      STAT   TIME COMMAND
14492 pts/24   Ss     0:00 -bash

2
কেন ব্যবহার pstreeকরবেন না ?
মুরু

@ মুরু আমি চেষ্টা করেছি pstreeএবং অর্থবহ আউটপুট উত্পাদন করতে পারিনি, আমার মনে হয় ঠিক আমি যা খুঁজছিলাম তা pstree $$তৈরি bash--pstreeহয়নি।
the_velour_fog

আপনি যা খুঁজছেন তা কীভাবে নয়? আপনি স্ক্রিপ্টটি প্রতিস্থাপন করেছেন এবং psতাই, আপনি ছাড়া আর কী দেখার আশা করেন pstree?
মুরু

@ মুরু আপনার প্রযুক্তিগতভাবে আমি যা চেয়েছিলাম তা সঠিক, তবে খুব কম। অর্থাৎ আপনি কীভাবে নিশ্চিত হন যে আপনি কোন প্রসেসের পিআইডি ছাড়া পিআইডি ছাড়া সন্ধান করছেন তা এটি টেবিল আউটপুট দেখায়?
the_velour_fog

4
pstree -p $$? অথবা, আপনি যদি কমান্ড লাইন শো আরও চান pstree -pa $$,। বা, আপনি যদি সমস্ত পিতামাতার প্রক্রিয়াগুলি দেখানোতে চান pstree -psa $$,।
مورু

উত্তর:


30

চেষ্টা

# ps -aef --forest
root     114032   1170  0 Apr05 ?        00:00:00  \_ sshd: root@pts/4
root     114039 114032  0 Apr05 pts/4    00:00:00  |   \_ -bash
root      56225 114039  0 13:47 pts/4    00:00:16  |       \_ top
root     114034   1170  0 Apr05 ?        00:00:00  \_ sshd: root@notty
root     114036 114034  0 Apr05 ?        00:00:00  |   \_ /usr/libexec/openssh/sftp-server
root     103102   1170  0 Apr06 ?        00:00:03  \_ sshd: root@pts/0
root     103155 103102  0 Apr06 pts/0    00:00:00  |   \_ -bash
root     106798 103155  0 Apr06 pts/0    00:00:00  |       \_ su - postgres
postgres 106799 106798  0 Apr06 pts/0    00:00:00  |           \_ -bash
postgres  60959 106799  0 14:39 pts/0    00:00:00  |               \_ ps -aef --forest
postgres  60960 106799  0 14:39 pts/0    00:00:00  |               \_ more

5
প্রশ্নটি একটি নির্দিষ্ট প্রক্রিয়া থেকে শুরু করে কোনও প্রক্রিয়া গাছের সন্ধানে বোঝানো $1হয়, কোনও স্ক্রিপ্টের পক্ষে যুক্তি বা $$বর্তমান শেল থেকে শুরু করে গাছটি দেখার জন্য ... আপনি কীভাবে বন শুরু করবেন সে সম্পর্কে তথ্য অন্তর্ভুক্ত করার জন্য নিজের উত্তর আপডেট করতে পারবেন? একটি নির্দিষ্ট প্রক্রিয়া?
ফিলাব্রেন্ডেন

23

আমি এই মন্তব্যটি লক্ষ্য করে এই সুপারভাইজার উত্তর পড়ার পরে এটি পেয়েছি

তবে পিআইডি (-পি) এর জন্য নয় কারণ এটি কেবলমাত্র নির্দিষ্ট প্রক্রিয়াটি প্রিন্ট করে তবে সেশনের জন্য (-g)

এবং পরীক্ষা নিরীক্ষা

ps f -g<PID>

ফলে

$ ./script.sh $$
  PID TTY      STAT   TIME COMMAND
14492 pts/24   Ss     0:00 -bash
 9906 pts/24   S+     0:00  \_ bash ./script.sh 14492
 9907 pts/24   R+     0:00      \_ ps f -g14492

3
ম্যান পেজ থেকে:OUTPUT MODIFIERS: f ASCII-art process hierarchy (forest)
ফায়াত

1

আপনি কমান্ডটি ব্যবহার করতে পারেন ps f -g <PID>এবং এর জন্য মূল প্রক্রিয়াটি স্থির করতে পারেন PID:

#> ps f -g 0

PID TTY      STAT   TIME COMMAND
2 ?        S      0:00 [kthreadd]
3 ?        S      0:01  \_ [ksoftirqd/0]
7 ?        S      0:19  \_ [rcu_sched]

1

এটা চেষ্টা কর:

 $ ps -afx
  PID TTY      STAT   TIME COMMAND
    2 ?        S      0:00 [kthreadd]
    4 ?        I<     0:00  \_ [kworker/0:0H]
    6 ?        I<     0:00  \_ [mm_percpu_wq]
    7 ?        S      0:14  \_ [ksoftirqd/0]
    8 ?        I      0:34  \_ [rcu_sched]
    9 ?        I      0:00  \_ [rcu_bh]
   10 ?        S      0:00  \_ [migration/0]
   11 ?        S      0:00  \_ [watchdog/0]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.