ක්රියාවලියක් සඳහා මට PID අංකය තිබේ නම් (යුනික්ස් යන්ත්රයක), ඒ හා සම්බන්ධ ක්රියාවලියේ නම සොයා ගන්නේ කෙසේද?
මා කුමක් කළ යුතුද?
ps -fp PID
සම්පූර්ණ විධානය පෙන්වනු ඇත
ක්රියාවලියක් සඳහා මට PID අංකය තිබේ නම් (යුනික්ස් යන්ත්රයක), ඒ හා සම්බන්ධ ක්රියාවලියේ නම සොයා ගන්නේ කෙසේද?
මා කුමක් කළ යුතුද?
ps -fp PID
සම්පූර්ණ විධානය පෙන්වනු ඇත
Answers:
සියලුම POSIX- අනුකූල පද්ධතිවල සහ ලිනක්ස් සමඟ ඔබට භාවිතා කළ හැකිය ps
:
ps -p 1337 -o comm=
මෙන්න, ක්රියාවලිය එහි PID සමඟ තෝරා ගනු ලැබේ -p
. මෙම -o
විකල්පය, ප්රතිදානය ආකෘතිය විශේෂණය comm
විධානය නම අර්ථය.
මෙයද බලන්න: ps
- විවෘත කණ්ඩායම් මූලික පිරිවිතර නිකුතුව 6
command
ඒ වෙනුවට භාවිතා කිරීම එය නිවැරදි කරයි.
$ ps -p 1 -o comm=
init $ ps -p 1 -o command=
/ sbin / init; එයින් අදහස් වන්නේ එය අක්ෂර 15 ක් පමණ නොවේ, සමහර විට ද්විමය නාමයට එදිරිව එහි සම්පූර්ණ මාවත විය හැකිය.
comm
ද්විමය නම command
ලබා දී තර්කය 0 ලබා දෙයි
ඔබට ක්රියාවලි නාමය හෝ ක්රියාවලි- id හෝ pid භාවිතා කරන විධානය සොයාගත හැකිය
/proc/<pid>/cmdline
කිරීමෙන්
cat /proc/<pid>/cmdline
මෙන්න pid යනු ඔබට නම සොයා ගැනීමට අවශ්ය pid ය.
උදාහරණයක් ලෙස:
# ps aux
................
................
user 2480 0.0 1.2 119100 12728 pts/0 Sl 22:42 0:01 gnome-terminal
................
................
පිඩ් 2480 භාවිතා කරන ක්රියාවලි නාමය සොයා ගැනීමට ඔබට හැකිය
# cat /proc/2480/cmdline
gnome-terminal
කිසියම් පෑඩ් භාවිතා කරමින් වැඩසටහනේ මාවත ලබා ගැනීම සඳහා ඔබට භාවිතා කළ හැකිය:
ps ax|egrep "^ [PID]"
විකල්පයක් ලෙස ඔබට භාවිතා කළ හැකිය:
ps -a [PID]
ps -a
පර්යන්තය හා සම්බන්ධ සියලු ක්රියාදාමයන් ලැයිස්තුගත කරන්න, එය කිසිදු ආදානයක් නොගනී.
ps
අනුවාදය මත පදනම් procps version 3.2.7
වේ.
# ls -la /proc/ID_GOES_HERE/exe
උදාහරණයක්:
# ls -la /proc/1374/exe
lrwxrwxrwx 1 chmm chmm 0 Mai 5 20:46 /proc/1374/exe -> /usr/bin/telegram-desktop
readlink /proc/1337/exe
. readlink - විසඳන සංකේතාත්මක සබැඳි හෝ කැනොනිකල් ගොනු නම් මුද්රණය කරන්න.
setprocname
/proc
ක්රමය පරිපූර්ණයි.
ඔබට pmap භාවිතා කළ හැකිය. මම PID 6649 සොයමින් සිටිමි. තවද අමතර ක්රියාවලි විස්තර කපා හැරීම.
$ pmap 6649 | head -1
6649: /usr/lib64/firefox/firefox
ps
ඔබ දකින සියල්ලම සාධාරණ ය java
, නමුත් සම්මත කළ ඉතිරි පරාමිතීන් සම්පුර්ණයෙන්ම පෙන්වනු ඇත pmap
.
ඔබට ps සමඟ ඒකාබද්ධව awk භාවිතා කළ හැකිය
ps aux | awk '$2 == PID number for a process { print $0 }'
උදාහරණයක්:
root@cprogrammer:~# ps aux | awk '$2 == 1 { print $0 }'
root 1 0.0 0.2 24476 2436 ? Ss 15:38 0:01 /sbin/init
ඔබට භාවිතා කළ හැකි HEAD LINE මුද්රණය කිරීමට
ps --headers aux |head -n 1 && ps aux | awk '$2 == 1 { print $0 }'
(or)
ps --headers aux |head -n 1; ps aux | awk '$2 == 1 { print $0 }'
root@cprogrammer:~# ps --headers aux |head -n 1 && ps aux | awk '$2 == 1 { print $0 }'
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 24476 2436 ? Ss 15:38 0:01 /sbin/init
ps ax | grep 1
එය init
ක්රියාවලිය නැවත ලබා දෙයිදැයි උත්සාහ කර බලන්න . (මගේ නඩුවේදී, එය පේළි 119 ක් ලබා දෙයි, එය සුදුසු නොවේ.)
ps aux | awk 'NR==1 || $2==PID'
- {print $0}
එය පෙරනිමිය නිසා කීමට අවශ්ය නැත . නමුත් ඔබ අදහස් දැක්වූ පරිදි, -p
කෙසේ වෙතත් වඩා හොඳය.
Slhck ගේ පිළිතුරට සමානය , නමුත් විධාන ආයාචනා වෙනුවට ගොනු මෙහෙයුම් මත යැපීම:
MYPID=1
cat "/proc/$MYPID/comm"
cat /proc/1/comm
=> init, / sbin / init නොවේ. ඔහුගේ පිළිතුරට දිගු අනුවාදය ඇතුළත් වේ. කෙසේ වෙතත් +1.
පුදුමයට කරුණක් නම්, ps සඳහා -f (full command) විකල්පය කිසිවෙකු සඳහන් කර නැත. -E (සෑම දෙයක්ම) සමඟ එය භාවිතා කිරීමට මම කැමතියි.
ps -ef | grep <PID>
ඔබේ පද්ධතියේ බොහෝ සම්පත් ලබා ගන්නා යමෙකු ක්රියාත්මක වන සම්පූර්ණ විධානයන් බැලීමට මෙයද ඉතා ප්රයෝජනවත් වේ. මෙය ඔබට විධානය වෙත ලබා දුන් විකල්ප සහ තර්ක පෙන්වනු ඇත.
-e -f
ලබා ගත හැකි ස්ථානවල පවා grep
බොහෝ ව්යාජ ගැලපීම් ඇති කළ හැකිය. උදා: grep 33
pid = 933 හෝ 339, ppid = 33 හෝ 933 හෝ 339, තත්පර 33 ක් හෝ මිනිත්තු 33 ක් කාලානුරූපව භාවිතා කිරීම, හෝ 33 ක් අඩංගු වැඩසටහන් grep
නාමයක් හෝ තර්කයක් ඇතුළත් වේ. සියලු (AFAIK) ps
තියෙනවා -p
ඉතින් නිකමට, ps -fp 33
.
පහත දැක්වෙන විධානය සමඟ සිටීමට පහසුම ක්රමය මම සොයා ගතිමි:
ps -awxs | grep pid
ps -p${pid}
, මෙය ද ඇතුළුව බොහෝ ව්යාජ ධනාත්මක දේ ලබා ගනී grep
.
PID සොයා ගැනීමට සහ bash ස්ක්රිප්ට් තුළ භාවිතා කිරීමට සරල පිටපතක් සාදන ලදි ...
ප්රවේශමෙන් භාවිතා කරන්න !!
තිර රුව: http://pastebin.com/Cm9YH67U
ඇන්ඩ්රේ
ps
හෝls -l /proc/$PID/exe