'Kill -9' ක්‍රියා නොකරන්නේ නම් කුමක් කළ යුතුද?


493

මට මරා දැමිය නොහැකි ක්‍රියාවලියක් ඇත kill -9 <pid>. එවැනි අවස්ථාවක ඇති ගැටලුව කුමක්ද, විශේෂයෙන් මම එම ක්‍රියාවලියේ හිමිකරු බැවින්. මම හිතුවේ කිසිම දෙයකින් ඒ killවිකල්පය මග හැරිය නොහැකි බවයි .

Answers:


581

kill -9( සිග්කිල් ) සෑම විටම ක්‍රියා කරයි, එම ක්‍රියාවලිය විනාශ කිරීමට ඔබට අවසර තිබේ නම්. මූලික වශයෙන් එක්කෝ ක්‍රියාවලිය ඔබ විසින් ආරම්භ කළ යුතු අතර එය සෙට්වුඩ් හෝ සෙට්ජිඩ් නොවිය යුතුය, නැතහොත් ඔබ මූල විය යුතුය. එක් ව්‍යතිරේකයක් ඇත: මූලයට පවා PID 1 ( initක්‍රියාවලිය) වෙත මාරාන්තික සං signal ාවක් යැවිය නොහැක .

කෙසේ වෙතත් වහාමkill -9 වැඩ කිරීමට සහතික නොවේ . සිග්කිල් ඇතුළු සියලුම සං als ා අසමමුහුර්තව ලබා දෙනු ලැබේ: කර්නලය ඒවා ලබා දීමට කාලය ගතවනු ඇත. සාමාන්‍යයෙන්, සං signal ාවක් ලබා දීම සඳහා මයික්‍රෝ තත්පර කිහිපයක් ගත වේ, ඉලක්කයට කාල පෙත්තක් ලබා ගැනීමට ගතවන කාලය. කෙසේ වෙතත්, ඉලක්කය සං signal ාව අවහිර කර ඇත්නම්, ඉලක්කය එය අවහිර කරන තෙක් සං signal ාව පෝලිම් ගැසෙනු ඇත.

සාමාන්‍යයෙන්, ක්‍රියාවලි වලට SIGKILL අවහිර කළ නොහැක. නමුත් කර්නල් කේතයට පද්ධති ඇමතුම් ඇමතූ විට කර්නල් කේතය ක්‍රියාත්මක කළ හැකිය . පද්ධති ඇමතුමට බාධා කරන විට කර්නල් කේතය සියලු සං als ා අවහිර කරයි, එමඟින් කර්නලයේ කොතැනක හෝ නරක ලෙස සැකසූ දත්ත ව්‍යුහයක් ඇති වේ, නැතහොත් වඩාත් සාමාන්‍යයෙන් සමහර කර්නල් ආක්‍රමණ උල්ලං being නය වේ. එබැවින් (දෝෂයක් හෝ වැරදි නිර්මාණයක් හේතුවෙන්) පද්ධතියක් දින නියමයක් නොමැතිව අවහිර වුවහොත්, ක්‍රියාවලිය kill ාතනය කිරීමට way ලදායී ක්‍රමයක් නොතිබිය හැකිය. (නමුත්, එම ක්රියාවලිය ඇත එය මෙතෙක් පද්ධතිය ඇමතුමක් සම්පූර්ණ නම් ඝාතනය කළ.)

පද්ධති ඇමතුමක අවහිර වූ ක්‍රියාවලියක් අඛණ්ඩ නින්දේ ය . මෙම psහෝ topවිධාන ඇත (බොහෝ unices මත) රාජ්ය එය පෙන්විය D(මුලින් "සඳහා isk", මම හිතන්නේ).

දිගු අවිච්චින්න නින්ද පිළිබඳ සම්භාව්ය නඩුව ගැන ගොනු ප්රවේශ ක්රියාවලිය වේ NFS සේවාදායකය ප්රතිචාර දක්වන්නේ නැහැ විට, නවීන ක්‍රියාත්මක කිරීම් වල අඛණ්ඩ නින්දක් පැනවීමට නැඹුරු නොවේ (උදා: ලිනක්ස් යටතේ, intrසවිකිරීමේ විකල්පය මඟින් සං F ාවක් මඟින් එන්එෆ්එස් ගොනු ප්‍රවේශයට බාධා කිරීමට ඉඩ ලබා දේ).

සමහර විට හෝ ප්‍රතිදානයේ සලකුණු කර ඇති ඇතුළත් කිරීම් Z(හෝ Hලිනක්ස් යටතේ, වෙනස කුමක්දැයි මම නොදනිමි) ඔබට දැක ගත හැකිය . මේවා තාක්‍ෂණිකව ක්‍රියාවලි නොවේ, ඒවා සොම්බි ක්‍රියාවලි වන අතර ඒවා ක්‍රියාවලි වගුවේ ඇතුළත් කිරීමකට වඩා වැඩි දෙයක් නොවේ. එමඟින් දරුවාගේ මරණය පිළිබඳව දෙමාපිය ක්‍රියාවලියට දැනුම් දිය හැකිය. දෙමාපිය ක්‍රියාවලිය අවධානය යොමු කළ විට (හෝ මිය ගිය විට) ඔවුන් ඉවත්ව යනු ඇත .pstop


98
යෝර්ගේ පිළිතුර ස්වයං පරස්පර විරෝධී බවක් පෙනේ. ඔබ සිග්කිල් සැමවිටම ක්‍රියාත්මක වන බව පැවසීමට පටන් ගත්තද, අඛණ්ඩ නින්දක් උපුටා දක්වමින් අවසන් කරන්න, එහිදී කර්නලය වසා දැමීමෙන් පිටත සිග්කිල් කිසි විටෙකත් ක්‍රියා නොකරනු ඇත. සිග්කිල් ක්‍රියා නොකරන අවස්ථා දෙකක් ද තිබේ. පිස්සු සමඟ පැහැදිලිවම ඔබට දැනටමත් මියගිය ක්‍රියාවලීන් kill ාතනය කළ නොහැකි අතර init සමඟින්, සැලසුම අනුව සිග්කිල් සං als ා නොසලකා හරිනු ඇත.
jlliagre

43
ljlliagre: පිල්ලියක් මැරීම තේරුමක් නැහැ, එය ආරම්භ කිරීම ජීවමාන නොවේ. හා interruptible නින්ද ක්රියාවලියක් ඝාතනය කරන්නේ වැඩ, එය (අනෙකුත් සංඥා ලෙස) අසමමිතික වේ. මගේ සංස්කරණයේදී මෙය පැහැදිලි කිරීමට මම උත්සාහ කර ඇත්තෙමි.
ගිලෙස්ගේ SO- නපුරු වීම නවත්වන්න '

3
මම ලිව්වා පිල්ලියක් මැරීම තේරුමක් නැති නමුත් බොහෝ දෙනෙකුට එය උත්සාහ කර පැමිණිලි කිරීමට බාධාවක් නොවේ. බාධා කළ හැකි නින්දේ ක්‍රියාවලියක් illing ාතනය කිරීම සැබවින්ම සැලසුම අනුව ක්‍රියාත්මක වේ, නමුත් මම කතා කළේ අඛණ්ඩ නින්දක ක්‍රියාවලියක් killing ාතනය කිරීම ගැන ය.
jlliagre

11
man 5 nfs: " කර්නල් 2.6.25 න් පසු intr/ nointrසවිකිරීමේ විකල්පය ඉවත් කරනු ලැබේ. මෙම කර්නල් වල ඉතිරිව ඇති එන්එෆ්එස් මෙහෙයුමට බාධා කළ හැක්කේ සිග්කිල්ට පමණි. නිශ්චිතව දක්වා තිබේ නම්, පැරණි කර්නල් සමඟ පසුපසට ගැළපුම ලබා දීම සඳහා මෙම සවිකිරීමේ විකල්පය නොසලකා හරිනු ලැබේ."
මොනිකා නැවත

5
@ imz - IvanZakharyaschev මා දන්නා බව නොවේ (නමුත් මම නොදන්නවා විය හැක). Sshfs සමඟ, අවසාන පියවරක් ලෙස, ඔබට sshfsක්‍රියාවලිය විනාශ කළ හැකිය (එසේම වෙනත් ඕනෑම FUSE ගොනු පද්ධතියක් සමඟ: ඔබට සෑම විටම බලහත්කාරයෙන් ඉවත් කළ හැකිය).
ගිලෙස්ගේ SO- නපුරු වීම නවත්වන්න '

104

යම්කිසි ක්‍රියාවලියක් පවතින අතර ඒවා නිසා මරා දැමිය නොහැක:

  • පිල්ලියක් වීම. එනම් පිටවීමේ තත්ත්වය දෙමව්පියන් කියවා නැති ක්‍රියාවලියයි. එවැනි ක්‍රියාවලියක් PID ඇතුළත් කිරීම හැර වෙනත් සම්පත් පරිභෝජනය නොකරයි. දී topඑය Z සංඥා ඇත
  • වැරදි අඛණ්ඩ නින්ද. එය සිදු නොවිය යුතු අතර එය දෝෂ සහිත කර්නල් කේතය සහ / හෝ දෝෂ සහිත දෘඩාංගවල සංයෝජනයක් සමඟ යම් වේලාවක සිදු වේ. එකම ක්‍රමය වන්නේ නැවත ආරම්භ කිරීම හෝ බලා සිටීමයි. දී topඑය ඩී මගින් සලකුනු කරයි

2
සොම්බි සම්පත් පරිභෝජනය කරන්නේ නැද්ද?
ලූක් එම්

7
Uc ලූක් එම්: AFAIK අංක (අවම වශයෙන් ලිනක්ස් මත) - ක්‍රියාවලි වගුවේ ඇතුළත් කිරීම හැරුණු විට (එනම් PID සමඟ හිමිකරු, පිටවීමේ තත්වය යනාදිය). එය අවසන් වූ පාර්ශවයෙන් පිළිගැනීමක් බලාපොරොත්තුවෙන් සිටින ක්‍රියාවලියකි.
මැකීජ් පීචොට්කා

18
enxenoterracide: අවසානයේදී ඔව්, නමුත් දෙමව්පියන්ගේ ක්‍රියාවලිය තවමත් පවතින්නේ නම් (නිදසුනක් ලෙස එය gnome-session හෝ සමාන භූමිකාවක් පුරවන දෙයක්) ඔබට තවමත් පිල්ලියක් තිබිය හැකිය. තාක්ෂණික වශයෙන් එය පිරිසිදු කිරීම මවුපියන්ගේ කාර්යයකි, නමුත් පිල්ලියක් අනාථව සිටී නම් ඉන් පසුව පිරිසිදු වේ (යුනික්ස් පංති සංවෘත දොරවල් වලින් සිදු කිරීමට හේතුව පාරිභාෂිතයයි - අනාථයන්, පිල්ලියක් සහ එක් වාක්‍යයකින් killing ාතනය කිරීම ගැන අසන ඕනෑම කෙනෙකුට වැරදි හැඟීමක් ඇති විය හැකිය).
මැකීජ් පීචොට්කා

8
"... නැවත ආරම්භ කිරීම හෝ රැඳී සිටීම එකම ක්‍රමයයි." කොපමණ කාලයක් රැඳී සිටින්න? මාස පහක් ගතවී ඇති අතර මගේ පිල්ලිය තවමත් පවතී.
DarenW

3
දරුවන්ගේ මරණය දෙමාපියන් පිළිගන්නා තුරු. වැඩි විස්තර සඳහා කරුණාකර වැඩසටහනේ කතුවරයාගෙන් විමසන්න.
මැකීජ් පීචොට්කා

32

ඔබට උමතු ක්‍රියාවලියක් තිබිය හැකි බව පෙනේ. මෙය හානිකර නොවේ: පිල්ලියක් ක්‍රියාවලියක් පරිභෝජනය කරන එකම සම්පත ක්‍රියාවලි වගුවේ ඇතුළත් කිරීමකි. දෙමව්පියන්ගේ ක්‍රියාවලිය මිය ගිය විට හෝ තම දරුවාගේ මරණයට ප්‍රතික්‍රියා කරන විට එය පහව යනු ඇත.

topපහත දැක්වෙන විධානය භාවිතා කිරීමෙන් හෝ ක්‍රියාවලිය පිල්ලියක් දැයි ඔබට දැක ගත හැකිය :

ps aux | awk '$8=="Z" {print $2}'

16
ම්ම්, මම සෑම විටම මේ ආකාරයේ "දෘ" "ක්ෂේත්‍ර නාම සමඟ අකමැතියි ps. සියළුම යුනිසෙස්වල ක්‍රියාත්මක කිරීමත් සමඟ අවශ්‍ය ක්ෂේත්‍රය සැමවිටම 8 වන ස්ථානය බවට සහතික විය හැක්කේ කාටද ps?
syntaxerror

26

ඕනෑම හෝඩුවාවක් සඳහා ඔබගේ /var/log/kern.logසහ /var/log/dmesg(හෝ සමාන) පරීක්ෂා කරන්න . මගේ අත්දැකීම් අනුව මෙය මට සිදුවී ඇත්තේ එන්එෆ්එස් සවිකිරීමේ ජාල සම්බන්ධතාවය හදිසියේම පහත වැටුණු විට හෝ උපාංග ධාවකයක් බිඳ වැටුණු විට පමණි. දෘ drive තැටියක් ද කඩා වැටුණොත් එය සිදුවිය හැකි බව මම විශ්වාස කරමි.

lsofක්‍රියාවලිය විවෘත කර ඇති උපාංග ගොනු මොනවාදැයි බැලීමට ඔබට භාවිතා කළ හැකිය.


6
NFS සඳහන් කිරීම සඳහා +1. මීට වසර කිහිපයකට පෙර මෙය සෑම මාස දෙකකට වරක් මට සිදු විය - එන්එෆ්එස් සේවාදායකය බිඳ වැටුනේ නම්, සියලු (පැච්) RHEL පෙට්ටිවල එන්එෆ්එස් සේවාදායකයින් එල්ලී යනු ඇත. kill -9මිනිත්තු 60 ක් බලා සිටීමෙන් පසුව පවා වැඩ කළේ නැත. එකම විසඳුම වූයේ නැවත ආරම්භ කිරීමයි.
ස්ටෙෆාන් ලසිව්ස්කි

17

@ මැකීජ්ගේ සහ @ ගිලෙස්ගේ පිළිතුර ඔබේ ගැටලුව විසඳන්නේ නැත්නම්, ඔබ එම ක්‍රියාවලිය හඳුනා නොගන්නේ නම් (ඔබේ ඩිස්ට්‍රෝ සමඟ එය කුමක්දැයි විමසීමෙන් පිළිතුරු නොලැබේ). Rootkit ගේ සහ ඔබ කර තියෙනවා ඕනෑම ලක්ෂණ සඳහා පරීක්ෂා කරන්න අයත් . ක්‍රියාවලිය killing ාතනය කිරීමෙන් ඔබව වළක්වා ගැනීමට රූට්කිට් හැකියාවට වඩා වැඩි ය. ඇත්ත වශයෙන්ම බොහෝ අය ඔබව දැකීමෙන් වලක්වා ගත හැකිය. නමුත් කුඩා වැඩසටහන් 1 ක් වෙනස් කිරීමට ඔවුන් අමතක කළහොත් ඒවා හඳුනාගත හැකිය (උදා: ඒවා වෙනස් කරන ලදි top, නමුත් නොවේ htop). බොහෝ දුරට මෙය එසේ නොවන නමුත් කණගාටු වීමට වඩා ආරක්ෂිතයි.


දේවල් සරල කිරීම සඳහා බොහෝ රූට්කිට් කර්නලයට ඇතුළු වන බව මම අනුමාන කරමි (පරිශීලකයා සතුව ඇති දේ අනුමාන කිරීම සහ පැච් කළ වැඩසටහන් වල MB බාගත කිරීම අවශ්‍ය නොවේ). කෙසේ වෙතත් එය තවමත් පරීක්ෂා කිරීම වටී (++ ඡන්ද).
මැකීජ් පීචොට්කා

12

මරන්න යන්නෙන් අදහස් කරන්නේ සං .ාවක් යැවීමයි. ඔබට යැවිය හැකි බහු සං als ා ඇත. kill -9 විශේෂ සං .ාවකි.

සං signal ාවක් යැවීමේදී යෙදුම එය සමඟ කටයුතු කරයි. එසේ නොවේ නම් කර්නලය ඒ සමඟ කටයුතු කරයි. එවිට ඔබට ඔබේ යෙදුමේ සං signal ාවක් කොටු කළ හැකිය.

නමුත් මම කිව්වා kill ාතනය -9 විශේෂයි කියලා. යෙදුමට එය නොලැබීම විශේෂත්වයකි. එය කෙලින්ම කර්නලය වෙතට යන අතර එමඟින් පළමු අවස්ථාවෙහිදී යෙදුම සැබවින්ම විනාශ කරයි. වෙනත් වචන වලින් කිවහොත් එය මිය යයි

kill -15 මඟින් SIGNM සං signal ාව යවන අතර එය SIGNAL TERMINATE යන්නෙන් අදහස් වේ. යෙදුමක් වසා දැමීමට කාලය බව පැවසීමට මෙය මිත්‍රශීලී ක්‍රමයයි. නමුත් යෙදුම ප්‍රතිචාර නොදක්වන්නේ නම් kill ාතනය -9 එය මරා දමයි.

kill ාතනය -9 ක්‍රියා නොකරන්නේ නම් එයින් අදහස් වන්නේ ඔබේ කර්නලය අබලන් වී ඇති බවයි. නැවත පණගැන්වීම පිළිවෙලට ඇත. එය කවදාවත් සිදු වූ බව මට මතක නැත.


5
15 යනු SIGTERM (මිත්‍රශීලී kill ාතනය) මිස SIGHUP නොවේ. SIGHUP යනු පාලක පර්යන්තය වසා දැමීම හෝ සන්නිවේදන නාලිකාව නැතිවීම සඳහා ය
JoelFan

12

පළමුව, එහි සොම්බි ක්‍රියාවලියක් තිබේදැයි පරීක්ෂා කරන්න (එය ඉතා හැකි ය):

ps -Al

ඔබ එවැනි දෙයක් දකිනු ඇත:

0 Z  1000 24589     1  0  80   0 -     0 exit   ?        00:00:00 soffice.bin <defunct>

(වම් පස ඇති "Z" සටහන් කරන්න)

5 වන තීරුව 1 නොවේ නම්, එයින් අදහස් වන්නේ එයට මව් ක්‍රියාවලියක් ඇති බවයි. එම මව් ක්‍රියාවලි හැඳුනුම්පත මරා දැමීමට උත්සාහ කරන්න .

එහි PPID = 1 නම්, එය මරන්න එපා !! , වෙනත් උපාංග හෝ ක්‍රියාවලි එයට සම්බන්ධ විය හැකි යැයි සිතන්න.

උදාහරණයක් ලෙස, ඔබ සවිකර ඇති උපාංගයක් හෝ සම්බා භාවිතා කරන්නේ නම්, එය ඉවත් කිරීමට උත්සාහ කරන්න. එමඟින් සොම්බි ක්‍රියාවලිය මුදා හැරිය හැක.

සටහන : ps -Al(හෝ top) “Z” වෙනුවට “D” පෙන්වන්නේ නම්, එය දුරස්ථ සවිකිරීමට (NFS වැනි) සම්බන්ධ විය හැකිය. මගේ අත්දැකීම් අනුව, නැවත පණ ගැන්වීම එහි යෑමට ඇති එකම ක්‍රමයයි, නමුත් ඔබට එම නඩුව ආවරණය කරන අනෙක් පිළිතුරු වඩාත් විස්තරාත්මකව පරීක්ෂා කළ හැකිය.


1
මව් ක්‍රියාවලියට SIGCHLD යැවීමෙන් එම ක්‍රියාවලිය මියගිය බව දෙමාපියන්ට හඳුනාගත හැකිය. PPID = 1. මෙය සාමාන්‍යයෙන් කර්නලය මඟින් යවනු ලැබේ, නමුත් මවුපියන් සමඟ kill ාතනය කිරීම හරහාද යැවිය හැකිය (ලිනක්ස් මත -17 මරා දමන්න, වෙනත් * නික්ස් වල ඇති අත්පොත් පරීක්ෂා කරන්න). මෙම kill ාතන භාවිතය ඇත්ත වශයෙන්ම මවුපියන් "kill ාතනය" නොකරනු ඇත, නමුත් (නැවත) දරුවෙකු මියගොස් ඇති බවත් එය පිරිසිදු කළ යුතු බවත් දැනුම් දෙයි. සිග්ල්ඩ් යැවිය යුත්තේ පිල්ලියේ මවුපියන්ට මිස පිල්ලියට නොවේ.
ස්ටෙෆනි

PPID 1 නොවේ පවා නම්, එය තවමත් පරීක්ෂාවට දේ මව් ක්රියාවලියක් වන අතර දේ වෙනත් ක්රියාවලීන්, එය සමග කිරීමට පාරම්පරික තියෙන්නේ වටිනවා ps -ef | grep Nඑහිදී Nඑම PPID ප්රශ්නය වේ. පොදුවේ ගත් කල මෙය හොඳ අදහසක් වන අතර, උපසිරැසි හඳුන්වාදීමෙන් පසු (2012 දී), සහ බොහෝ විට ඔබ systemd භාවිතා කරන බෙදාහැරීමක් භාවිතා කරන්නේ නම්.
ක්‍රිස් හෙන්රි

10

අනෙක් අය සඳහන් කර ඇති පරිදි, අඛණ්ඩ නින්දේ ක්‍රියාවලියක් වහාම මරා දැමිය නොහැක (හෝ, සමහර අවස්ථාවලදී). මෙම ගැටළුව විසඳීම සඳහා තවත් ක්‍රියාදාම තත්වයක් වන TASK_KILLABLE එකතු කර ඇති බව සඳහන් කිරීම වටී, විශේෂයෙන් එන්එෆ්එස් මත ක්‍රියාවලිය බලා සිටින පොදු අවස්ථාව. Http://lwn.net/Articles/288056/ බලන්න

අවාසනාවට මම විශ්වාස කරන්නේ නැහැ මෙය කර්නලයේ කොතැනකවත් භාවිතා වන නමුත් එන්එෆ්එස්.


දුරස්ථ සේවාදායකයට ළඟා විය නොහැකි වූ විට, සවිකිරීමට lsප්‍රවේශ වීමේ ක්‍රියාවලියක් sshfskilling ාතනය කිරීමේ ගැටළු මට තිබුණි . එවැනි තත්වයන් වළක්වා ගැනීම සඳහා අනාගතයේදී මට භාවිතා කළ හැකි FUSE හෝ sshf සඳහා විසඳුමක් තිබේද? 2.6.30 කර්නලය
imz - අයිවන් සකාර්යාෂෙව්

@imz ගිලෙස්ගේ උපදෙස් (sshfs මරා දැමීමට) ඇත - unix.stackexchange.com/a/5648/4319 .
imz - අයිවන් සකරියාෂෙව්

10

ආරම්භක ක්‍රියාවලිය සිග්කිල් වලට ප්‍රතිශක්තී වේ.

මෙය කර්නල් නූල් සඳහා ද සත්‍ය වේ, එනම් 0 ට සමාන PPID සහිත “ක්‍රියාවලි”.


1
කර්නල් කාර්යයන් සිග්කිල් වලටද ප්‍රතිශක්තීකරනය කළ හැකිය. මෙය බොහෝ විට Btrfs සමඟ ප්‍රමාණවත් වේ.
ටෝබු

6

මට ටිකක් බැලීමට උදව් කළ කුඩා පිටපතක් සාදන ලදී!

ලබා දී ඇති නමක් ඇති ඕනෑම ක්‍රියාවලියක් එහි මාවතේ මරා දැමීමට ඔබට එය භාවිතා කළ හැකිය (මේ පිළිබඳව අවධානය යොමු කරන්න !!) නැතහොත් “-u පරිශීලක නාමය” පරාමිතිය භාවිතා කර යම් පරිශීලකයෙකුගේ ඕනෑම ක්‍රියාවලියක් kill ාතනය කළ හැකිය.

#!/bin/bash

if [ "$1" == "-u" ] ; then\n
        PID=`grep "$2" /etc/passwd | cut -d ":" -f3`
        processes=`ps aux | grep "$PID" | egrep -v "PID|ps \-au|killbyname|grep" | awk '{ print $2}'`
        echo "############# Killing all processes of user: $2 ############################"
else
        echo "############# Killing processes by name: $1 ############################"
        processes=`ps aux | grep "$1" | egrep -v "killbyname|grep" | awk '{ print $2}' `
fi


for process in $processes ; do
        # "command" stores the entire commandline of the process that will be killed
        #it may be useful to show it but in some cases it is counter-productive
        #command=`ps aux | grep $process | egrep -v "grep" | awk '{ print $2 }'`
        echo "Killing process: $process"
        echo ""
        kill -9 $process
done

4
එයට සම්බන්ධ වීම වෙනුවට කේතය මෙහි පළ කළ හැකිද?
tshepang

3
කේතය සමඟ (හෝ අවම වශයෙන් ඒ වෙනුවට) විස්තරයක් එක් කරන්න ...
වොන්බ්‍රෑන්ඩ්

ඔව්, නමුත් "$ නම" වඩාත් සමස්ථ වේ ... එය "$ නම" සහිත ඕනෑම ක්‍රියාවලියක් එහි ධාවන පථයේ විනාශ කරයි. ඔබට මෙම විශාල විධාන රේඛා ඇති අතර ක්‍රියාවලියේ නම කුමක්දැයි ඔබ නොදනී.
user36035

5

ඔබ ක්‍රියාවලියක් සඳහා kill ාතනයක් -9 යැවුවද, එම පිඩැල්ල නතර වනු ඇත, නමුත් ක්‍රියාවලිය ස්වයංක්‍රීයව නැවත ආරම්භ වේ (නිදසුනක් ලෙස, ඔබ එය උත්සාහ කළහොත් gnome-panelඑය නැවත ආරම්භ වේ): එය එසේ විය හැකිද?


8
මේ වගේ දෙයක් සිදු වූ විට, PID ඇත්ත වශයෙන්ම වෙනස් වේ. ඒ නිසා මම දැක්කා.
tshepang

3

මෙතැන් සිට මුලින් :

ස්ට්රේස් කිසිවක් පෙන්වන්නේ දැයි පරීක්ෂා කරන්න

strace -p <PID>

gdb සමඟ ක්‍රියාවලියට ඇමිණීමට උත්සාහ කරන්න

gdb <path to binary> <PID>

ක්‍රියාවලිය ඔබට ඉවත් කළ හැකි, කර්නල් මොඩියුලය ඉවත් කිරීමට හෝ භෞතිකව විසන්ධි කිරීමට / ඉවත් කිරීමට හැකි උපාංගයක් සමඟ අන්තර්ක්‍රියා කරන්නේ නම් ... එය උත්සාහ කරන්න.


මා වෙනුවෙන් වැඩ කළා! (උසස් පෙළ එල්ලී තිබූ USB උපාංගය විසන්ධි කිරීම)
nmz787

1

මට මේ වගේ කාරණයක් තිබුණා. මම මේ සමඟ ආරම්භ කළ බව වැඩ සටහන straceහා සමග බාධා Ctrl+ C. එය අවසන් වූයේ T(සොයාගත් හෝ නැවැත්වූ) තත්වයක ය. එය හරියටම සිදුවූයේ කෙසේදැයි මම නොදනිමි, නමුත් එය මරා දැමිය නොහැක SIGKILL.

දිගු කතාව කෙටියෙන්, මම එය මරා දැමීමට සමත් විය gdb:

gdb -p <PID>
> kill
Kill the program being debugged? (y or n) y
> quit

-1

ගිලෙස්ගේ පිළිතුරෙන් ලද හෝඩුවාවක් මත පදනම්ව, මට <defunct>පද්ධති සම්පත් භාවිතා කරන “පීඑස්” හි ඉහළින් “ඉසෙඩ්” ලෙස සලකුණු කරන ලද ක්‍රියාවලියක් තිබුණි , එයට වරායක් පවා විවෘතව තිබු අතර එය සවන් දෙන අතර ඔබට එම වරායට සම්බන්ධ විය හැකිය. මෙය සිදු කළේ එය ක්‍රියාත්මක කිරීමෙන් පසුවය kill -9. එහි මවුපියන් "1" (එනම් init) එබැවින් න්‍යායාත්මකව එය නැවත නැවත අතුරුදහන් විය යුතුය. නමුත් එය එසේ නොවීය, එය දුවන්නේ නැත, සහ "මැරෙන්නේ නැත"

ඉතින් මගේ කාරණයේදී එය පිල්ලියක් නමුත් තවමත් සම්පත් පරිභෝජනය කරයි ... FWIW.

එය ඕනෑම සංඛ්යාවක් විසින් killable නොවේ kill -9ගේ

එහි මවුපියන් වූ initනමුත් එය නෙළා නොගනු ලැබීය (පිරිසිදු කිරීම). එනම් initඑය දුක්බර ළමා විය.

ගැටළුව විසඳීම සඳහා නැවත පණගැන්වීම අවශ්‍ය නොවීය. නැවත පණගැන්වීම ගැටළුව වටා "ක්‍රියා කිරීමට" ඉඩ තිබුනද / එය වේගයෙන් වසා දැමීමට හේතු විය. කරුණාවන්ත නොවේ, එය තවමත් කළ හැකි විය.

එය සොම්බි ක්‍රියාවලියකට අයත් LISTEN වරායක් විය (සහ CLOSE_WAIT තත්ත්වය වැනි තවත් වරායන් කිහිපයක් localhost සමඟ localhost සම්බන්ධ කර ඇත). එය තවමත් සම්බන්ධතා පවා පිළිගත්තේය. පිල්ලියක් ලෙස පවා. වරාය පිරිසිදු කිරීම සඳහා එය තවම පැමිණ නැති බව මම අනුමාන කරමි. එනමුත් ඒවා පිළිගැනීමට අවස්ථාවක් නොතිබුණද, එන සම්බන්ධතා ටීසීපී සවන්දීමේ වරායේ පිටුපසට එකතු කර ඇත.

ඉහත බොහෝ දේ අන්තර් ජාලයන්හි විවිධ ස්ථානවල “කළ නොහැකි” යැයි ප්‍රකාශ කර ඇත.

මා තුළ අභ්‍යන්තර නූල් ඇති බව පෙනේ, එය "පද්ධති ඇමතුමක්" (මෙම අවස්ථාවේදී ioctl) ක්‍රියාත්මක කරමින් නැවත පැමිණීමට පැය කිහිපයක් ගත විය (මෙය අපේක්ෂිත හැසිරීමයි). පෙනෙන විදිහට පද්ධතියට එම ක්‍රියාවලිය “සියල්ලම” විනාශ කළ නොහැක ioctl, එය ඇමතුමෙන් ආපසු එන තුරු , එය කර්නල් ඉඩමට ඇතුළු වන බව අනුමාන කරන්න. පැය කිහිපයකට පසු එය නැවත පැමිණ, දේවල් පිරිසිදු කර සොකට් සියල්ලම ස්වයංක්‍රීයව වසා දමා ඇත. එය මරණීය දණ්ඩනය සඳහා ගතවන කාලයයි! කර්නලය එය මරා දැමීමට ඉවසීමෙන් බලා සිටියේය.

එබැවින් OP ට පිළිතුරු දීමට, සමහර විට ඔබට බලා සිටීමට සිදු වේ. දිගු කාලයක්. එවිට kill ාතනය අවසානයේ සිදුවනු ඇත.

කර්නල් සන්ත්රාසය (එනම් කර්නල් දෝෂය) තිබේදැයි බැලීමට dmesg පරීක්ෂා කරන්න.


මෙය ඔබ ප්‍රශ්නයට පිළිතුරකට වඩා ඔබේම විශේෂිත සිදුවීමක් විස්තර කරන බවක් පෙනේ. ඔබේ නඩුවේදී, ක්‍රියාවලිය දිගු කාලීනව ක්‍රියාත්මක වීම නිසා එය තනිවම සවි කර ඇත. කෙසේ වෙතත් නව ප්‍රශ්නයක් මතු කර එයට පිළිතුරු සැපයීමට ඔබව සාදරයෙන් පිළිගනිමු. ප්‍රති question ලය ඔබ ක්‍රියාත්මක කිරීමට විශේෂිත බැවින් එම ප්‍රශ්නය “ප්‍රජනනය කළ නොහැකි” ලෙස වසා දැමෙනු ඇතැයි මම බිය වෙමි.
සෙන්ටිමේන්

ඇත්ත වශයෙන්ම, එය OP ට පිළිතුරු දෙන ආකාරය මම එකතු කළෙමි, මන්ද ... සමහර අවස්ථාවල.
rogerdpack
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.