පසුබිම් ක්‍රියාවලියක් අවසන් කරන්නේ කෙසේද?


215

මම පසුබිම් භාවිතයෙන් දුරස්ථ යන්ත්‍රයේ wget එකක් ආරම්භ කර ඇත්තෙමි &. හදිසියේම එය බාගත කිරීම නවත්වයි. මට එහි ක්‍රියාවලිය අවසන් කිරීමට අවශ්‍යයි, ඉන්පසු විධානය නැවත ක්‍රියාත්මක කරන්න. එය අවසන් කරන්නේ කෙසේද?

මම එහි ෂෙල් කවුළුව වසා නැත. නමුත් ඔබ දන්නා පරිදි එය Ctrl+ Cසහ Ctrl+ භාවිතා කිරීම නවත්වන්නේ නැත Z.

Answers:


285

මේ සඳහා යාමට බොහෝ ක්‍රම තිබේ.

ක්රමය # 1 - ps

psමෙම ක්‍රියාවලිය සඳහා ක්‍රියාවලි හැඳුනුම්පත සොයා ගැනීමට ඔබට විධානය භාවිතා කළ හැකි අතර පසුව ක්‍රියාවලිය විනාශ කිරීමට PID භාවිතා කරන්න.

උදාහරණයක්

$ ps -eaf | grep [w]get 
saml      1713  1709  0 Dec10 pts/0    00:00:00 wget ...

$ kill 1713

ක්රමය # 2 - pgrep

ඔබට ක්‍රියාවලි හැඳුනුම්පත භාවිතා කළ හැකිය pgrep.

උදාහරණයක්

$ pgrep wget
1234

$ kill 1234

ක්රමය # 3 - pkill

ඔබ wgetධාවනය කර ඇති එකම ක්‍රමය එය බව ඔබට විශ්වාස නම්, ඔබට විධානය භාවිතා pkillකර රැකියාවෙන් නම මරා දැමිය හැකිය .

උදාහරණයක්

$ pkill wget

ක්රමය # 4 - රැකියා

ඔබ දැන් පසුබිමේ ඇති රැකියාව මෙහෙයවූ ස්ථානයේ සිට එකම කවචයේ සිටී නම්. jobsවිධානය භාවිතා කරමින් එය තවමත් ක්‍රියාත්මක වේදැයි ඔබට පරීක්ෂා කළ හැකි අතර, එහි රැකියා අංකය මගින් එය මරා දමන්න.

උදාහරණයක්

මගේ ව්‍යාජ රැකියාව , sleep.

$ sleep 100 &
[1] 4542

එහි රැකියා අංකය සොයා ගන්න. සටහන: අංක 4542 යනු ක්‍රියාවලි හැඳුනුම්පතයි.

$ jobs
[1]+  Running                 sleep 100 &

$ kill %1
[1]+  Terminated              sleep 100

ක්රමය # 5 - fg

fgවිධානය භාවිතා කර ඔබට පසුබිම් රැකියාවක් පෙරට ගෙන යා හැකිය .

උදාහරණයක්

ව්‍යාජ රැකියාව , sleep.

$ sleep 100 &
[1] 4650

රැකියාවේ අංකය ලබා ගන්න.

$ jobs
[1]+  Running                 sleep 100 &

රැකියාව # 1 නැවත පෙරමුණට ගෙන එන්න, ඉන්පසු Ctrl+ භාවිතා කරන්න C.

$ fg 1
sleep 100
^C
$

1
OMohammadEtemaddar - නිමැවුමෙන් 2 වන අංකය භාවිතා කරන්න ps. 3 වන # යනු දෙමව්පියන්ගේ ක්‍රියාවලි හැඳුනුම්පතයි.
slm

1
OMohammadEtemaddar - අහ්, ps විසින් ග්‍රෙප් සොයා ගනී. මේ ආකාරයට කරන්න : ps -eaef| grep [w]get.
slm

1
OMohammadEtemaddar - ඔබට pgrepඒ වෙනුවට භාවිතා කළ හැකිය pgrep wget.
slm

2
OMohammadEtemaddar - කණගාටුයි අමතර ඊ යතුරු ලියනයකි. කියවිය යුතුය ps -eaf | grep [w]get. විකල්පයන් psman පිටුවේ ඇත. man ps.
slm

1
kill %%අවසාන පසුබිම් ක්‍රියාවලිය මරා දමයි. එය නැවත නැවත කිරීමෙන් පෙර සිටි තැනැත්තා මරා දමනු ඇත. kill %1පළමු පසුබිම් ක්‍රියාවලිය මරා දමයි.
රොනී ෂෙරර්

77

fgකඩිනමින් ඔබට කාර්යය පෙරමුණට ගෙන පසුව Ctrl+ භාවිතා කළ හැකියC

නැතහොත් පසුබිම තුළ ක්‍රියාවලිය ලැයිස්තුගත කර jobsඉන්පසු කරන්න

kill %1

( jobsඔබට ලබා දුන් අංකයෙන් 1 ක් ආදේශ කර ඇත )


15

kill $!මෑතදී පසුබිම් කරන ලද රැකියාව kill ාතනය කිරීමට ඔබට සමානව භාවිතා කළ හැකිය .


එය බාෂ් පැතිකඩක අන්වර්ථයක් වැනි විධානයක් ලෙස භාවිතා කරන්නේ නම්, තනි උපුටා දැක්වීම් වලින් එතීමට වග බලා ගන්න.
නේට් රිටර්

6

සංස්කරණය කරන්න: පෙරබිමෙහි, ඔබට Ctrl+ C, හෝ @ සෙල්ඩා සඳහන් කළ පරිදි, '% x' සමඟ මරා දැමිය හැකිය , එහිදී 'x' යනු රැකියා අංකය පෙරනිමි සං signal ාව යවනු ඇත (බොහෝ විට ලිනක්ස් සම්බන්ධයෙන් SIGTERM).

fgඔබ පසුබිම් කළ අවසන් ක්‍රියාවලිය නම් ('සහ' සමඟ) එය පෙරට ගෙන ඒමට ටයිප් කරන්න.

එය අන්තිම එක නොවේ නම්, ටයිප් කරන්න: jobsසහ '[]' හි නිරූපණය කර ඇති 'රැකියා අංකය' සොයා ගන්න. ඉන්පසු ටයිප් කරන්න:

fg 2

කොහෙද '2' යනු රැකියා අංකය, උදාහරණයක් ලෙස:

foo@bar:~/junk/books$ jobs
[1]+  Running                 okular how_to_cook_a_turkey.pdf &
foo@bar:~/junk/books$ fg 1
okular how_to_cook_a_turkey.pdf            <- this is now in the foreground.

4

නිවැරදි ක්‍රමය නම් ටයිප් jobsකර රැකියා අංකය භාවිතා කර එය විනාශ කිරීමයි. එය මරා දැමීමට පිඩ් එක භාවිතා කිරීම සඳහා පළමු පිළිතුරේ සඳහන් පරිදි එය පෙරට ගෙන යා යුතුය.

මේක උත්සාහ කරන්න

~/Desktop$ sleep 1000 &
[1] 7056

~/Desktop$ jobs

[1]+  Running  sleep 1000 &

/Desktop$ kill %1  #(%1 is the job number)

ඔබ kill ාතනය කළ විගසම රැකියා කරගෙන යන්නේ නම් ඔබ මෙය දැකිය යුතුය

Desktop$ jobs
[1]+  Terminated              sleep 1000

4

මම මෙහි නොදකින එක් දෙයක් නම්, විශේෂයෙන් විධාන පරීක්ෂා කිරීමේදී මට එය ඉතා ප්‍රයෝජනවත් විය pidof. pidof [command]දැනට ක්‍රියාත්මක වන ක්‍රියාවලියක ක්‍රියාවලි හැඳුනුම්පත සොයා ගැනීමට ඔබට භාවිතා කළ හැකිය. මම එයට කැමතියි, මන්ද එය මට අවශ්‍ය විධානයේ හැඳුනුම්පත ඉක්මනින් සොයා ගැනීමට ඉඩ සලසයි, එය සාමාන්‍යයෙන් මම ආයාචනා කළ දෙයකි.

ඔබට පිඩ් එක ලැබුණු පසු, ඔබට ක්‍රියාවලිය මරා දැමිය හැකිය. ක්‍රියාවලියක් killing ාතනය කිරීම සඳහා සරල ස්ක්‍රිප්ට් නිර්මාණය කිරීමට එය ඉඩ දෙන්නේ එය දැනට ක්‍රියාත්මක වන්නේ නම් පමණි.


1
අහ් මේක මට උදව් කළා! kill% 1 කිසියම් හේතුවක් නිසා ක්‍රියා නොකරයි, "kill ාතනය: තර්කය විග්‍රහ කිරීමට අසමත් විය: '% 1'" සහ Ctrl + C ක්‍රියා නොකරයි;
පීඑස්

1

පොදු උදාහරණයක් වන්නේ stressමෙවලමයි. ඔබ පහත සඳහන් දෑ ධාවනය කළ බව කියමු:

$ stress -c 4 -m 4 

සහ පර්යන්ත කවුළුව වසා ඇත. මෙම ක්‍රියාවලිය ඔබගේ සම්පත් පසුබිමෙන් අනුභව කරනු ඇත.

හර්ස් තමයි මම කරන්නේ:

$ x=`pgrep stress` ; sudo kill -9 $x 

pgrepයටත් කරන ලද ක්‍රියාවලියේ PID ලැයිස්තුගත කර එය විචල්‍යයක් ලෙස ගබඩා කර xපසුව kill -9එය අවසන් කිරීමට භාවිතා කරයි.


0

අවසන් වරට නැවැත්වූ ක්‍රියාවලියේදී (Ctrl-Z) ඔබ විසින් මරා දමනු ලබන්නේ:

kill %%
kill -9 %%

හෝ තෝරා ගැනීමට අවශ්‍ය නම්, භාවිතා කරන්න:

jobs

එවිට:

kill %N

මෙන් kill %2


0

පහසුම ක්‍රමය වන්නේ -9ධජය මත kill විධානය භාවිතා කිරීමයි

user@host:/path> jobs
[1]+  Running                 /usr/home/script1.sh $i &
user@host:/path> fg
/usr/home/script1.sh $i
^C
[1]+  Stopped                 /usr/home/script1.sh $i
user@host:/path> kill -9 %1
[1]+  Stopped                 /usr/home/script1.sh $i
user@host:/path>
[1]+  Killed                  /usr/home/script1.sh $i
user@host:/path>
user@host:/path> jobs
user@host:/path>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.