পিএস কমান্ডের সম্পূর্ণ আউটপুট দেখছে


163

আমি যখন ps -auxআমার লিনাক্স সার্ভারে কমান্ড চালাচ্ছি , যার সাথে আমি পুটি ব্যবহার করে সংযুক্ত করেছি, আমার বর্তমান উইন্ডো প্রস্থে কিছু প্রসেস খুব বেশি দীর্ঘ। বিকল্প আছে?

-- হালনাগাদ --

ডাউনগ্রেডিংয়ের জন্য আমি দুঃখিত, আমি ভেবেছিলাম অন্যরাও উত্তরটি দরকারী খুঁজে পাবে না, তাই আমি ডাউনগ্রেড করেছি।

আপনি যে তথ্য চেয়েছিলেন তা এখানে।

hadoop-user@hadoop-desk:~$ echo $TERM
xterm

hadoop-user@hadoop-desk:~$ stty -a
speed 38400 baud; rows 47; columns 158; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

hadoop-user@hadoop-desk:~$ echo $COLUMNS
158

একপাশে, আপনি খুব অল্প তথ্য সরবরাহ করেছেন, সুতরাং আপনার এতক্ষণে যে সমস্ত উত্তর পেয়েছে সেগুলি হ্রাস করা উচিত নয়। আমরা আপনাকে সাহায্য করার চেষ্টা করছি। আপনি আউটপুট পোস্ট করা উচিত echo $TERM, stty -aএবং echo $COLUMNSআপনার প্রশ্নের হবে।
অলোক সিংহল

চেষ্টা করুন stty ocrnlএবং / অথবা stty sane?
অলোক সিংহল

29
ps axuwwএটি উত্তর;) কমপক্ষে আমার জন্য। দ্বিগুণ wwএটা করেছে।
ব্রেফস্কাট

উত্তর:


145

সম্ভবত আপনি প্যাজার ব্যবহার করছেন যেমন lessবা mostএর ফলাফল আউটপুট ps auxস্ক্রিনফুলের চেয়ে দীর্ঘ হয়। যদি তা হয় তবে নিম্নোক্ত বিকল্পগুলি কাটা কাটার পরিবর্তে দীর্ঘ (বা জোর) লম্বা লাইনগুলিকে মোড়কে দেবে।

ps aux | less -+S

ps aux | most -w

আপনি যদি নিম্নলিখিত কমান্ডগুলির কোনও ব্যবহার করেন তবে লাইনগুলি মোড়ানো হবে না তবে আপনি বাম এবং ডানদিকে স্ক্রোল করতে আপনার তীরচিহ্নগুলি বা অন্যান্য আন্দোলন কীগুলি ব্যবহার করতে পারেন।

ps aux | less -S    # use arrow keys, or Esc-( and Esc-), or Alt-( and Alt-) 

ps aux | most       # use arrow keys, or < and > (Tab can also be used to scroll right)

লাইন সর্বদা moreএবং এর জন্য আবৃত থাকে pg

যখন ps auxকোনও পাইপে ব্যবহৃত হয়, wবিকল্পটি অপ্রয়োজনীয় কারণ psআউটপুট টার্মিনালে গেলে কেবল পর্দার প্রস্থই ব্যবহার করা হয়।


21
দয়া করে নোট করুন যে লিনাক্সে এখনও কার্নেল কোডে হার্ড কোডিং 4096 টি অক্ষরের সীমা রয়েছে: stackoverflow.com/questions/199130/… দেখুন
মেরিয়ানো পানিগা

3
@ মারিয়ানোপানিগা: আপনি সেই মন্তব্যে আমার জীবন বাঁচিয়েছেন।
স্ট্যাকুলার

সবচেয়ে? আপনি আরও বোঝাতে চান?
মাইক ফারলেন্ডার

@ মাইকফুরল্যান্ডার: না, mostএটি অন্য পেজার। আমি আমার উত্তরে একটি লিঙ্ক যুক্ত করেছি।
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

@ ডেনিসউইলিইমসন wপাইপ ব্যবহার করার সময় আপনার প্রয়োজন না হওয়ার বিষয়ে আপনার বক্তব্যটি সিস্টেম-নির্ভর বলে মনে হচ্ছে। উভয় ওপেনসুএস লিপ 15.0 এবং উবুন্টু 18.04 এ, কমান্ডগুলি টার্মিনাল প্রস্থের দ্বারা কাটা ps aux | grep <something>আউটপুটটিতে কাজ করার মতো কাজ করে ps
pkeller

149

auxwwপতাকাগুলি ব্যবহার করে , আপনি উভয় টার্মিনাল উইন্ডোতে এবং শেল স্ক্রিপ্ট থেকে আউটপুট দেওয়ার পুরো পথটি দেখতে পাবেন।

darragh@darraghserver ~ $uname -a
SunOS darraghserver 5.10 Generic_142901-13 i86pc i386 i86pc

darragh@darraghserver ~ $which ps
/usr/bin/ps<br>

darragh@darraghserver ~ $/usr/ucb/ps auxww | grep ps
darragh 13680  0.0  0.0 3872 3152 pts/1    O 14:39:32  0:00 /usr/ucb/ps -auxww
darragh 13681  0.0  0.0 1420  852 pts/1    S 14:39:32  0:00 grep ps

ps auxসমস্ত ব্যবহারকারী দ্বারা সম্পাদিত সমস্ত প্রক্রিয়া তালিকাবদ্ধ করে। দেখুন man psবিস্তারিত জানার জন্য। wwপতাকা সীমাহীন প্রস্থ সেট করে।

-w         Wide output. Use this option twice for unlimited width.
w          Wide output. Use this option twice for unlimited width.

আমি নীচের ব্লগে উত্তরটি পেয়েছি:
http://www.snowfrog.net/2010/06/10/solaris-ps-output-truncated-at-80-columns/


10
এটি বর্তমান গৃহীত সমাধানের চেয়ে ভাল উত্তর কারণ সমস্ত সিস্টেমে (এম্বেডড লিনাক্স) 'সর্বাধিক', 'বেশি' বা 'কম' পেজার অন্তর্ভুক্ত করে না।
frakman1

বা,ps auxf > ps.log
মার্স্লো


64

কেবল এটি বিড়ালের উপর ফেলে দিন, যা স্বয়ংক্রিয়ভাবে লাইনটি মোড়ক করে

ps aux | cat

আপনি আরও কিছু বলতে পারেন।
এমজারাগোজা

10
ব্যস্তিবক্সের মতো হালকা লিনাক্স বিতরণের জন্য ভাল সমাধান, যেখানে উন্নত সরঞ্জামগুলি উপলভ্য নয় :)
লায়ন

পাশাপাশি মনে রাখা সহজ!
fzN

খুব সহজ। catকমান্ড প্রতিটি নিক্স বাক্সে আছে।
লাইগামার

15

এটি কয়েক ws পাস করা ডিসপ্লে প্রস্থ উপেক্ষা করবে।


আপনি কি একাধিক যুক্ত করার চেষ্টা করেছেন?
Ignacio Vazquez-Abram 4

আমি 5 টিরও বেশি যোগ করার চেষ্টা করেছি ... তবে কোনওভাবে এটি সম্পূর্ণ কমান্ডটি দেখায় না।
বুলিয়ান

1
একবার 3 এ গেলে আপনি যা যা দেখছেন তা সব দেখতে পাবেন। এটি যা দেখায় তার বাইরে কিছুই কোনও প্রোগ্রামের কাছে দৃশ্যমান নয় । আপনার আলাদা সমস্যা আছে।
Ignacio Vazquez-Abram 4

11

আপনি যদি আউটপুট ফর্ম্যাটটি ম্যানুয়ালি নির্দিষ্ট করে থাকেন তবে আপনারও নিশ্চিত করতে হবে যে আউটপুট ক্ষেত্রগুলির তালিকার argsবিকল্পটি শেষ , অন্যথায় এটি কেটে যাবে।

ps -A -o args,pid,lstart দেয়

/usr/lib/postgresql/9.5/bin 29900 Thu May 11 10:41:59 2017
postgres: checkpointer proc 29902 Thu May 11 10:41:59 2017
postgres: writer process    29903 Thu May 11 10:41:59 2017
postgres: wal writer proces 29904 Thu May 11 10:41:59 2017
postgres: autovacuum launch 29905 Thu May 11 10:41:59 2017
postgres: stats collector p 29906 Thu May 11 10:41:59 2017
[kworker/2:0]               30188 Fri May 12 09:20:17 2017
/usr/lib/upower/upowerd     30651 Mon May  8 09:57:58 2017
/usr/sbin/apache2 -k start  31288 Fri May 12 07:35:01 2017
/usr/sbin/apache2 -k start  31289 Fri May 12 07:35:01 2017
/sbin/rpc.statd --no-notify 31635 Mon May  8 09:49:12 2017
/sbin/rpcbind -f -w         31637 Mon May  8 09:49:12 2017
[nfsiod]                    31645 Mon May  8 09:49:12 2017
[kworker/1:0]               31801 Fri May 12 09:49:15 2017
[kworker/u16:0]             32658 Fri May 12 11:00:51 2017

তবে ps -A -o pid,lstart,argsআপনি সম্পূর্ণ কমান্ড লাইন পান:

29900 Thu May 11 10:41:59 2017 /usr/lib/postgresql/9.5/bin/postgres -D /tmp/4493-d849-dc76-9215 -p 38103
29902 Thu May 11 10:41:59 2017 postgres: checkpointer process   
29903 Thu May 11 10:41:59 2017 postgres: writer process   
29904 Thu May 11 10:41:59 2017 postgres: wal writer process   
29905 Thu May 11 10:41:59 2017 postgres: autovacuum launcher process   
29906 Thu May 11 10:41:59 2017 postgres: stats collector process   
30188 Fri May 12 09:20:17 2017 [kworker/2:0]
30651 Mon May  8 09:57:58 2017 /usr/lib/upower/upowerd
31288 Fri May 12 07:35:01 2017 /usr/sbin/apache2 -k start
31289 Fri May 12 07:35:01 2017 /usr/sbin/apache2 -k start
31635 Mon May  8 09:49:12 2017 /sbin/rpc.statd --no-notify
31637 Mon May  8 09:49:12 2017 /sbin/rpcbind -f -w
31645 Mon May  8 09:49:12 2017 [nfsiod]
31801 Fri May 12 09:49:15 2017 [kworker/1:0]
32658 Fri May 12 11:00:51 2017 [kworker/u16:0]

9

আপনি আউটপুট ফর্ম্যাট সেট করতে পারেন, উদাহরণস্বরূপ কেবল কমান্ড এবং প্রক্রিয়া আইডি দেখতে।

ps -eo pid,args

আরও আউটপুট ফর্ম্যাট জন্য পিএস এর ম্যান পৃষ্ঠা দেখুন। বিকল্পভাবে, আপনি -wবা --width nবিকল্পগুলি ব্যবহার করতে পারেন ।

অন্য সমস্ত কিছু যদি ব্যর্থ হয়, তবে এখানে আরও একটি কৌশল রয়েছে, (কেবলমাত্র আপনার দীর্ঘ সেন্টিমিডি দেখতে)

awk '{ split(FILENAME,f,"/") ; printf "%s: %s\n", f[3],$0 }' /proc/[0-9]*/cmdline

1
অর্ডার পরিবর্তন করুন এবং আবার চেষ্টা করুন,
পিড করুন

3

পার্টিতে দেরি করার জন্য দুঃখিত তবে সমস্যার সমাধান খুঁজে পেয়েছেন।

লাইনগুলি কেটে গেছে কারণ পিএস COLUMNS এর মানটি ব্যবহার করার জন্য জোর দেয়, এমনকি যদি এই মুহুর্তে আউটপুটটি স্ক্রিন না হয়। কোন বাগ, আইএমএইচও। তবে কাজ করা সহজ, কেবলমাত্র পিএসকে মনে করুন আপনার কাছে একটি সুপারওয়াইড স্ক্রিন রয়েছে, অর্থাৎ পিএস কমান্ডের সময়কালের জন্য COLUMNS উচ্চ সেট করুন। একটি উদাহরণ:

$ ps -edalf                 # truncates lines to screen width
$ COLUMNS=1000 ps -edalf    # wraps lines regardless of screen width

আমি আশা করি এটি এখনও কারও কাজে লাগবে। অন্যান্য সমস্ত ধারণা অনেক জটিল বলে মনে হয়েছিল :)


1

উপরের সমাধানগুলির কোনওটি যদি কাজ psনা করে তবে এর আউটপুট আপনার সমস্যা নয়। দীর্ঘ লাইন মোড়ানোর জন্য আপনাকে পুট্টি সেট করতে হবে ?

অন্যথায়, আমাদের আরও তথ্য প্রয়োজন।


আচ্ছা ভালো. অদ্ভুত কিছু চলছে।
অলোক সিংহল

1

আপনি যদি grepপিএস অক্সের পাইপ দিয়ে সন্ধান করছেন সেই আদেশটি যদি তা স্বয়ংক্রিয়ভাবে পাঠানো হয়। আমি এখানে অন্যান্য উত্তরগুলি প্রচুর ব্যবহার করেছি, তবে কখনও কখনও আপনি যদি নির্দিষ্ট কিছু সন্ধান করে থাকেন তবে এটি কেবল ব্যবহার করা ভাল grepএবং আপনি জানেন যে এটি লাইনগুলিকে আবৃত করবে।

উদাহরণস্বরূপ ps aux | grep ffmpeg


1

আমি এই উত্তরটি পেয়েছি যা এটিকে আমার জন্য পেরেক দিয়েছিল কারণ উপরের উত্তরগুলির কোনওটিই কাজ করে না

/unix/91561/ps-full-command-is-too-long

মূলত, কার্নেলটি আমার সেমিডি লাইনটি সীমাবদ্ধ করছে।


0

অন্যদের দ্বারা কাটা কাটা প্রমাণ, (একটি ব্যক্তিগত উদাহরণ)

foo=$(ps -p 689 -o command); echo "$foo"

COMMAND
/opt/conda/bin/python -m ipykernel_launcher -f /root/.local/share/jupyter/runtime/kernel-5732db1a-d484-4a58-9d67-de6ef5ac721b.json

যে-তার বিপরীতে হিসাবে দীর্ঘ আউটপুট একটি পরিবর্তনশীল ক্যাপচার

ps -p 689 -o command

COMMAND
/opt/conda/bin/python -m ipykernel_launcher -f /root/.local/share/jupyter/runtim

যেহেতু আমি এটি ডকার জুপিটার নোটবুক থেকে চেষ্টা করছিলাম, তাই অবশ্যই এটি অবশ্যই আমার সাথে চালানো দরকার ..

!foo=$(ps -p 689 -o command); echo "$foo"

আশ্চর্যজনকভাবে জ্যুপির নোটবুকগুলি আপনাকে এটি সম্পাদন করতে দেয়! তবে আমার সমস্ত স্মৃতি = D নিয়ে আপত্তিজনক নোটবুকটি খুঁজে পেতে সহায়তা করে খুশি glad

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.