“උපාංගය හෝ සම්පත් කාර්යබහුල” වන්නේ කෙසේද?


253

මම rm -rfෆෝල්ඩරයකට උත්සාහ කළ අතර, "උපාංගය හෝ සම්පත් කාර්යබහුලයි".

වින්ඩෝස් හි, මෙය විසඳීමට මම ලොක්හන්ටර් භාවිතා කරමි. ලිනක්ස් සමාන කුමක්ද? (කරුණාකර පිළිතුරක් ලෙස "මෙය අගුළු ඇරීම" ක්‍රමයක් දෙන්න, මේ වගේ ලිපි සම්පුර්ණ නොකරන්න . ඒවා ප්‍රයෝජනවත් වුවද, මම දැනට ASimpleMethodThatWorks ගැන උනන්දු වෙමි)


5
ස්තූතියි මෙය පහසුයි - මම ලිනක්ස් සිට වින්ඩෝස් වෙත පැමිණෙමින් සිටියෙමි, lsof - LockHunter ට සමාන විය.
සෝනියා හැමිල්ටන්

3
මොකක් ද වෙලා තියෙන්නේ? Unix කරන්නේ නැහැ වින්ඩෝස් මෙහෙයුම් වැනි ගොනු විවෘත මකා ඔබ වැළැක්වීම. ධාවනය කිරීමෙන් ඔබේ මුළු පද්ධතියම මකා දැමිය හැක්කේ මේ නිසාය rm -rf /... එය / bin / rm ඇතුළු සෑම ගොනුවක්ම සතුටින් මකා දමනු ඇත.
psusi

1
uspsusi, එය වැරදියි. ඔබට එක්කෝ නරක තොරතුරු ප්‍රභවයක් හෝ දේවල් හදනවා. වින්ඩෝස් වැනි ලිනක්ස් වල ගොනු සහ උපාංග අගුළු ඇත. එය එක්තරා ආකාරයක කැඩී ඇත. 0pointer.de/blog/projects/locking.html
foobarbecue

1
oo ෆූබාර්බකියු, සාමාන්‍යයෙන් ඒවා උපදේශක අගුල් පමණක් වන අතර මෑන් පිටුව අවම වශයෙන් පෙන්නුම් කරන්නේ ඒවා කියවීමට / ලිවීමට පමණක් මිස ලින්ක් නොවන බවයි.
psusi

Answers:


257

ඔබට අවශ්ය මෙවලමකි lsofසඳහා කි්රයා කරන ලැයිස්තුව ගොනු විවෘත .

එයට විකල්ප රාශියක් ඇත, එබැවින් මෑන් පිටුව පරීක්ෂා කරන්න, නමුත් ඔබට ඩිරෙක්ටරියක් යටතේ ඇති සියලුම විවෘත ලිපිගොනු බැලීමට අවශ්‍ය නම්:

lsof +D /path

එය යටතේ ඇති ගොනු පද්ධතිය හරහා නැවත යථා තත්ත්වයට පත් වනු ඇත /path, එබැවින් විශාල ඩිරෙක්ටරි ගස් මත එය කිරීමට පරිස්සම් වන්න.

කුමන ක්‍රියාදාමයන් ගොනු විවෘත කර ඇත්දැයි දැනගත් පසු, ඔබට එම යෙදුම් වලින් ඉවත් විය හැකිය, නැතහොත් kill(1)විධානය මඟින් ඒවා මරා දැමිය හැකිය .


57
ප්‍රති results ල නොලැබුනේ නම් කුමක් කළ යුතුද?
නාවිකයින්

26
@ මාරයින්: වෙනත් ගොනු පද්ධතියක් යටින් සවිකර තිබේදැයි පරීක්ෂා කරන්න /path. සැඟවුණු "විවෘත ලිපිගොනු" සඳහා එය එක් හේතුවකි.
camh

2
lsof විධානය කෙලින්ම මාර්ගයට ක්‍රියා නොකරයි. එබැවින් මූලික වශයෙන් මාර්ග ස්ථානයට ගොස් කාර්යබහුල_ ගොනුව ධාවනය කර සියලු ක්‍රියාදාමයන් මරා දැමිය යුතුය
J4cK

4
lsofමා වෙනුවෙන් කිසිවක් නොකරන බව පෙනේ: lsof storage/logs/laravel.logකිසිවක් ආපසු නොදුන් අතර එසේ විය lsof +D storage/logs/. umountප්‍රතිචාර දැක්වීය not mounted.
රයන්

2
Amcamh පිළිතුර විස්තාරනය කිරීමට: භාවිතා කරන්න mount | grep <path>. එයින් පෙන්නුම් කරන්නේ ඕනෑම /dev/<abc>දෙයක් සවිකර ඇති බවයි <path>. භාවිතා sudo umount -lf /dev/<abc>කර ඉවත් කිරීමට උත්සාහ කරන්න <path>. මා වෙනුවෙන් වැඩ කරයි. ස්තූතියි amcamh
Vikas Goel

124

සමහර විට එය සවි කිරීමේ ගැටළු වල ප්‍රති result ලයකි, එබැවින් ඔබ ඉවත් කිරීමට උත්සාහ කරන ගොනු පද්ධතිය හෝ නාමාවලිය මම ඉවත් කරමි:

umount / path


8
එය හතරෙන් හතරයි. ස්තූතියි මචං, ඔයා මගේ රාත්‍රිය බේරුවා. හාස්යජනකයි. තනි පේළියක - එතරම් කාලය නාස්ති කිරීම -.- '
අයියොන්.ප්‍රයිම්

1
මගේ ගැටළුව වූයේ / dev / mapper / vg00-root ලෙස සවිකර ඇති ලොග් නාමාවලියකි
Spikolynn

1
වින්ඩර්ස් වල ඇති සමාන තදබදයකින් මිදීමට මට උදව් විය.
ජෝන්


1
මගේ නඩුවේදී, උබුන්ටු ඩෙස්ක්ටොප් එක සමඟ නොගැලපීම වැඩ කළා !! ස්තූතියි
ජේ රිචඩ්ස්

16

මම fuserමේ වගේ දෙයක් සඳහා පාවිච්චි කරනවා. සවිකිරීමේදී ගොනුවක් හෝ ලිපිගොනු භාවිතා කරන්නේ කුමන ක්‍රියාවලියදැයි එය ලැයිස්තු ගත කරයි.


fuserඔබට උදව් කරන්නේ ගොනු පද්ධතියක් ඉවත් කිරීමට අවශ්‍ය වූ විට පමණි. මෙහිදී ගැටළුව වන්නේ විශේෂිත ගොනුවක් භාවිතා කරන්නේ කුමක්ද යන්න සොයා ගැනීමයි.
ගිලෙස්ගේ SO- නපුරු වීම නවත්වන්න '

Il ගිලස්: ලිපිගොනු සඳහාද ක්‍රියා කරයි.
බිල්තෝර්

කණගාටුයි, වැරදි විරෝධය: fuserමෙහි ඇති උදව්වක් නොවන්නේ ඩිරෙක්ටරි ගසක ඇති සියලුම විවෘත ලිපිගොනු සොයා ගැනීමයි. lsofසියලුම ලිපිගොනු පෙන්වීමට සහ පෙරීමට ඔබට පැවසිය හැකිය , නැතහොත් එය ප්‍රතිවර්තනය කරන්න; fuserඑවැනි මාදිලියක් නොමැති අතර සෑම ගොනුවකම එය ක්‍රියාත්මක කළ යුතුය.
ගිලෙස්ගේ SO- නපුරු වීම නවත්වන්න '

Iles ගයිල්ස්: fuserවැඩ ලැයිස්තු ගත කරයි. උත්සාහ කරන්න fuser /var/log/*, කිසියම් ල logs ු-සටහන් විවෘතව තිබේ නම් එය කුමන ඒවාද සහ කවුරුන් විවෘත කර ඇත්දැයි කියනු ඇත. සරල ආදේශක කාඩ්පතක් නම්, වැඩ නොකරනු ඇත, findසමඟ හෝ නැතිව xargsඑම කාර්යය කරනු ඇත.
බිල්තෝර්

1
lsofඅතර, මගේ මාර්ගය වූයේ නැත fuserස්තුති මාව මරන්න රජයක්වීමෙන් ක්රියාවලිය හැඳුනුම්පත සොයා ගැනීමට ඉඩ සලසමින්,, ඒ නිසා + 1 +.
ස්ටීව්ස්ලීවා

12

මෙන්න විසඳුම:

  1. ඩිරෙක්ටරියට ගොස් ටයිප් කරන්න ls -a
  2. ඔබ .xyzගොනුවක් සොයා ගනු ඇත
  3. vi .xyz ගොනුවේ අන්තර්ගතය කුමක්දැයි සොයා බලන්න
  4. ps -ef | grep username
  5. .Xyz අන්තර්ගතය 8 වන තීරුවේ (අවසාන පේළිය) ඔබට පෙනෙනු ඇත
  6. kill -9 job_ids - එහිදී job_ids යනු 8 වන තීරුවේ අනුරූප දෝෂයේ 2 වන තීරුවේ වටිනාකමයි
  7. දැන් ෆෝල්ඩරය හෝ ගොනුව මකා දැමීමට උත්සාහ කරන්න.

5
එම අද්භූත ලිපිගොනු පැමිණෙන්නේ කොහෙන්දැයි දැන ගැනීම සිත්ගන්නා කරුණකි.
ජෝන් ඩබ්ලිව්. ස්මිත්

9

මටත් මේ ප්‍රශ්නයම තිබුනා, amcamh නිර්දේශයෙන් ආරම්භ කරමින් එක් ලයිනර් එකක් සාදන ලදී:

lsof +D ./ | awk '{print $2}' | tail -n +2 | xargs kill -9

මෙම awkවිධානය PIDS ඇරඹීම. මෙම tail"PID": විධානය pesky පළමු ප්රවේශය ඉවත් වී යයි. මම -9kill ාතනය සඳහා භාවිතා කළෙමි , අනෙක් අයට ආරක්ෂිත විකල්ප තිබිය හැකිය.


1
එය වඩාත් විශ්වීය කිරීම සඳහා ඔබට ලොග් වෙනුවට වත්මන් නාමාවලිය සඳහා ./ භාවිතා කළ හැකිය /
user2589273

හොඳ කරුණක්, @ user2589273. යාවත්කාලීන කරන ලදි.
චොයිල්ටන් බී. හිගින්බොට්ටම්

7

NFS ජාල ගොනු පද්ධති ඇති සේවාදායකයන් මත මම මෙය නිතර අත්විඳිමි. ලිපිගොනු සාමාන්‍යයෙන් නම් කර ඇති බැවින් එයට ගොනු පද්ධතියට යම් සම්බන්ධයක් ඇතැයි මම සිතමි .nfs000000123089abcxyz.

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

මෙය සාමාන්‍යයෙන් සිදුවන්නේ මා මෘදුකාංග පුස්තකාල ස්ථාපනය කරන හෝ සම්පාදනය කරන නාමාවලිවල ය.


5

ස්වයංක්‍රීය පරීක්ෂණයකින් රැම්ඩිස්ක් නිර්මාණය කරන විට මට මෙම ගැටළුව ඇතිවිය. මෙම විධානයන් අනෙක් පිළිතුරු යෝජනා, lsofසහ fuser, කිසිදු උපකාරයක් විය. පරීක්ෂණ වලින් පසුව මම එය ඉවත් කර ෆෝල්ඩරය මකා දැමීමට උත්සාහ කළෙමි. මට එයින් මිදීමට නොහැකි වූ නිසා මම අවුරුදු ගණනාවක් තිස්සේ ව්‍යාකූල වී සිටියෙමි - මට "උපාංගය හෝ සම්පත් කාර්යබහුල" විය .

අහම්බෙන් මම රැම්ඩිස්ක් ඉවත් කරන්නේ කෙසේදැයි සොයා ගත්තා. මා විසින් mountවිධානය ක්‍රියාත්මක කළ වාර ගණනම ඉවත් කිරීමට මට සිදු විය , එනම් sudo umount path

එය ස්වයංක්‍රීය පරීක්ෂාවකින් නිර්මාණය කර ඇති නිසා, එය බොහෝ වාරයක් සවි කර ඇති අතර, එම නිසා පරීක්ෂණවලින් පසු එක් වරක් එය ඉවත් කිරීමෙන් මට එයින් මිදීමට නොහැකි වූයේ මන්ද? ඉතින්, මම එය බොහෝ වාරයක් අතින් ඉවත් කිරීමෙන් පසුව එය නැවත සාමාන්‍ය ෆෝල්ඩරයක් බවට පත් වූ අතර මට එය මකා දැමිය හැකිය.

මෙම ගැටළුව මඟහරවා ගන්නා වෙනත් කෙනෙකුට මෙය උදව් වනු ඇතැයි අපේක්‍ෂා කරමු!


5

ඉහත ප්‍රභාත්ගේ ප්‍රශ්නය ඉවතට හරවා, මාක්ස් හයි සියෙරා හි මෙම ගැටළුව මා විසින් එන්එෆ්එෆ් ක්‍රියාවලියක් අතරමං කරන විට, නැවත පණගැන්වීම විසඳා ඇත, නමුත් මෙය

ps -ef | grep name-of-busy-dir

ක්‍රියාවලිය සහ PID (දෙවන තීරුව) මට පෙන්නුවා.

sudo kill -15 pid-here

එය සවි කර ඇත.


මෙය මටත් වැඩ කළා. සෙන්නට -15?
O.rka

3

ඔබට සේවාදායකයට ප්‍රවේශ විය හැකි නම්, උත්සාහ කරන්න

සේවාදායකයෙන් එම ඩිර් ඉවත් කිරීම

නැතහොත්, umount කර නැවත සවි කරන්න, උත්සාහ කරන්න umount -l: සාමාන්‍ය umount හි කිසියම් ගැටලුවකට මුහුණ දෙන්නේ නම් කම්මැලි umount.

මටත් මේ ගැටලුව තිබුණේ කොහේද

lsof +D path : ප්‍රතිදානයක් ලබා නොදේ

ps -ef : අදාළ තොරතුරු ලබා නොදේ

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.