මට SSH කවචයක ධාවන වැඩසටහනක් තිබේ. මට එය විරාමයක් තබා නැවත පැමිණෙන විට එය ක්රියාත්මක කිරීම අත්හිටුවීමට අවශ්යය.
එය කිරීමට මා සිතූ එක් ක්රමයක් නම් එහි හිමිකාරිත්වය තිර කවචයකට මාරු කිරීම ය.
ඉදිරියට යාමට වෙනත් ක්රමයක් තිබේද?
මට SSH කවචයක ධාවන වැඩසටහනක් තිබේ. මට එය විරාමයක් තබා නැවත පැමිණෙන විට එය ක්රියාත්මක කිරීම අත්හිටුවීමට අවශ්යය.
එය කිරීමට මා සිතූ එක් ක්රමයක් නම් එහි හිමිකාරිත්වය තිර කවචයකට මාරු කිරීම ය.
ඉදිරියට යාමට වෙනත් ක්රමයක් තිබේද?
Answers:
GNU භාවිතා screen
කිරීම ඔබේ හොඳම ඔට්ටුවයි.
විට ඔබට පළමු පිවිසුම් ධාවනය ආරම්භක තිරයෙහි - මම ක්රියාත්මක screen -D -R
, ඔබේ විධානය ක්රියාත්මක කරන්න, එක්කෝ විසන්ධි හෝ එය අත්හිටුවීමට CTRL-Z
එවකට විසන්ධි තිරය එබීමෙන් හා CTRL-A
පසුව D
.
ඔබ නැවත යන්ත්රයට පිවිසෙන විට, ධාවනය කිරීමෙන් නැවත සම්බන්ධ වන්න screen -D -R
. ඔබ පෙර මෙන් එකම කවචයේ සිටිනු ඇත. ඔබ jobs
එසේ කළේ නම් අත්හිටවූ ක්රියාවලිය බැලීමට ඔබට ධාවනය කළ හැකි අතර, %1
එය නැවත පෙරදැරි කිරීමට (හෝ අදාළ රැකියාව #) ධාවනය කරන්න.
disown
බිල්ට් සමඟ ඔබට වැඩසටහනේ “හිමිකාරිත්වය” කවචයෙන් අවලංගු කළ හැකිය :
# press Ctrl+Z to suspend the program
bg
disown
කෙසේ වෙතත් මෙය ෂෙල් එකට පවසන්නේ ෂෙල් SIGHUP
එක පිටවන විට වැඩසටහනට සං signal ාවක් නොයවන ලෙසයි. සාමාන්යයෙන් සම්මත ආදානය, ප්රතිදානය සහ දෝෂ ප්රවාහ ලෙස ටර්මිනලය සමඟ ඇති ඕනෑම සම්බන්ධතාවයක් මෙම වැඩසටහන විසින් රඳවා ගනු ඇත. ඒවා වෙනත් පර්යන්තයකට නැවත සම්බන්ධ කිරීමට ක්රමයක් නොමැත. ( සෑම කවුළුවක් සඳහාම ටර්මිනලයක් අනුකරණය කිරීමෙන් තිරය ක්රියා කරයි, එබැවින් වැඩසටහන් තිර කවුළුවට අමුණා ඇත.)
එය ඩිබගර් (එනම් භාවිතා වැඩසටහන අනුයුක්ත කිරිම මඟින් වෙනස් ගොනු කිරීමට filedescriptors ඇගිල්ල හැකි ය ptrace
) සහ එය අමතන්න කරමින් open
, dup
හා close
. මෙය කරන මෙවලම් කිහිපයක් තිබේ; මෙය උපක්රමශීලී ක්රියාවලියක් වන අතර සමහර විට ඔවුන් ඒ වෙනුවට ක්රියාවලිය බිඳ වැටෙනු ඇත. හැකියාවන් අතරට (පිළිතුරු වලින් එකතු කරන ලද සබැඳි , ධාවනය වන ක්රියාවලියක් ප්රතික්ෂේප කර එය නව තිර කවචයකට සම්බන්ධ කරන්නේ කෙසේද? සහ දැනටමත් ආරම්භ කර ඇති ක්රියාවලියක් මට නොහප් / තිරගත කළ හැකිද? ):
disown
රැකියා පාලන ලැයිස්තුවෙන් ක්රියාවලිය ඉවත් කරයි.
disown -h
?
fg
හෝ kill
එය කළ හැකි අතර එය තනිවම අවසන් වේදැයි බලන්න.
bzcat a.bz2 | grep text
) වැඩ කරන සඳහන් කළ උපයෝගිතා මොනවාද? මෑන් ෆෝ reptyr
පවසන්නේ එය ළමයින් සමඟ ක්රියාවලි ගෙනයාමට සහාය නොදක්වන බවයි.
පර්යන්ත අතර ක්රියාවලියක් ගෙනයාමට හෝ ප්රතික්ෂේප කළ අයෙකු නැවත සම්බන්ධ කිරීමට, ඔබට උදා: reptyr භාවිතා කළ හැකිය .
screen
පිළිතුර ඇත්ත වශයෙන්ම පරිපූර්ණ වුවත්, එය ඇත්ත වශයෙන්ම ප්රශ්නයට පිළිතුරු සපයන්නේ නැත, එය දැනට ක්රියාත්මක වන ක්රියාවලියක් හෝ ඒ හා සමාන වෙනත් ආකාරයකට ගෙනයාමට ක්රමයක් ඉල්ලා සිටී screen
. මෙම පිළිතුරද බලන්න: serverfault.com/a/284795
මගේ ප්රියතම විසඳුම භාවිතා කිරීම tmux
, ඔබට සැසිය වෙන් කර වෙනත් පර්යන්තයක නැවත ඇමිණිය හැකිය.
ඔබ පෙර සැසිවාරයෙන් වෙන් වූ විට, ඔබට ආරක්ෂිතව පර්යන්තය වසා දැමිය හැකිය; tmux attach
ඔබ ඉවත් වී සිටියද පසුව සැසිය වෙත ආපසු යාමට භාවිතා කරන්න.
මම එය නිතිපතා භාවිතා නොකරමි , නමුත් නියෙක්ස් මේ සඳහා සහාය දෙන බව කියා සිටී. එය screen
වඩා හොඳ කවුළු කළමනාකරණය වැනි විවිධ විසිතුරු අංගයන්ගෙන් යුත් සමාන වැඩසටහනකි, නමුත් එය ඉදිරිපත් කරන ප්රධානතම දෙය නම් ක්රියාවලියක් කවුළුවකට ආනයනය කිරීමේ හැකියාවයි
ptrace
) වාදනය කරයි , නමුත් එය ගොනු විස්තර කරන්නන් හසුරුවන්නේ නැත, එය ක්රියාවලිය අත්හරියි. එය අල්ලා ගත හැකි find /
නමුත් අන්තර්ක්රියාකාරී කඩාවැටීමක් බිඳ වැටුණි.
තෝමස් හෙබෙට්ස් වෙතින් "ඉන්කෝඩ්" මට අවශ්ය දේමයි:
https://github.com/ThomasHabets/injcode
ඉන්කෝඩ් වැඩසටහන මඟින් ඔබ කලින් දැන සිටියත් නැතත්, ක්රියාත්මක වන තිරයකට හෝ ටී.එම්.එස්.
README වෙතින්:
උදාහරණ 1: ඉර්සි එක් පර්යන්තයක සිට තවත් පර්යන්තයකට ගෙන යන්න
සමහර විට එය තිරයකට ගෙනයන්න.
පළමුව එක් පර්යන්තයකින් ඉර්සි ආරම්භ කරන්න.
වෙනත් පර්යන්තයක ඉන්කෝඩ් ධාවනය කරන්න: $ injcode -m retty
නව පාලන පර්යන්තයක් ඇතුළුව ඉර්සි දැන් දෙවන පර්යන්තයට ගෙන යා යුතුය.
මෙය මට ප්රයෝජනවත් විය:
bg
ක්රියාවලියjobs -l
ක්රියාවලි අංකය සොයා ගන්නtmux
ෂෙල් කවුළු කළමනාකරු ආරම්භ කරන්නreptyr -L PROCESSNUMBER
reptyr
ගේ -L
වැඩ කටයුතු කිරීමට මෙම ලබා ගැනීමට අවශ්ය විය:
-L Like '-l', but also redirect the child's stdio to the slave.
මෙම දෝෂය නිසා:
$ reptyr 30622
[-] Unable to open the tty in the child.
Unable to attach to pid 30622: Permission denied
සහ -L සමඟ
$ reptyr -L 30622
Opened a new pty: /dev/pts/4