Ssh සැසිය අවසන් කිරීමෙන් පසු ක්‍රියාවලි දිගටම පවත්වා ගන්නේ කෙසේද?


709

මම ssh සැසියකින් ක්‍රියාවලි රාශියක් දියත් කරමි. දුරස්ථ යන්ත්‍රය මත එම ක්‍රියාදාමයන් පවත්වා ගෙන යන අතරතුර ssh සැසිය අවසන් කළ හැකිද?


Answers:


832

ඔබ වැනි නවීන විකල්ප සොයා බැලිය යුතුය tmux.

tmuxscreenබොහෝ හේතු නිසා වඩා උසස් ය , මෙන්න උදාහරණ කිහිපයක් පමණි:

  • වින්ඩෝස් සැසිය අතර ගෙන යා හැකි අතර සැසි කිහිපයකට සම්බන්ධ කළ හැකිය
  • වින්ඩෝස් තිරස් අතට හා සිරස් අතට කවුළුවලට බෙදිය හැකිය
  • UTF-8 සහ 256 වර්ණ පර්යන්ත සඳහා සහාය
  • සැසියකට ඇතුළුවීමකින් තොරව සැසි කවචයෙන් පාලනය කළ හැකිය

මූලික ක්‍රියාකාරිත්වය

නිර්දේශ කිරීමේ පිළිතුරෙහි විස්තර කර ඇති ආකාරයටම ක්‍රියාකාරීත්වය ලබා ගැනීම සඳහා screen, ඔබ පහත සඳහන් දෑ කළ යුතුය:

  • ssh දුරස්ථ යන්ත්‍රයට
  • ආරම්භ tmuxටයිප් කිරීම මගින් tmuxෂෙල් බවට
  • ආරම්භක tmuxසැසිය තුළ ඔබට අවශ්‍ය ක්‍රියාවලිය ආරම්භ කරන්න
  • නිවාඩු කිරීම / මඟ පාදා tmuxටයිප් විසින් සැසිය Ctrl+ bඑදා සහd

ඔබට දැන් දුරස්ථ යන්ත්‍රයෙන් ආරක්ෂිතව ලොග් විය හැක, ඔබේ ක්‍රියාවලිය දිගටම ක්‍රියාත්මක වේ tmux. ඔබ නැවත පැමිණ ඔබේ ක්‍රියාවලියේ තත්වය පරීක්ෂා කිරීමට අවශ්‍ය වූ tmux attachවිට ඔබේ tmuxසැසියට ඇමිණීමට භාවිතා කළ හැකිය .

ඔබට එකවර සැසි කිහිපයක් පවත්වා ගැනීමට අවශ්‍ය නම්, ඔබ එක් එක් සැසිය Ctrl+ bසහ $. ඔබට දැනට ක්‍රියාත්මක වන සැසි ලැයිස්තුවක් ලබා ගත හැකිය tmux list-sessions, දැන් විධානය සමඟ ක්‍රියාත්මක සැසියකට අමුණන්න tmux attach-session -t <session-name>.

tmuxතනි සැසියක තනි කවුළුවක් හැසිරවීමට වඩා දියුණු දේවල් කළ හැකිය. වැඩි විස්තර සඳහා බලන්න කියලා man tmuxහෝ එම tmux GitHub පිටුව . විශේෂයෙන්, සහ අතර ඇති ප්‍රධාන වෙනස්කම් පිළිබඳ නිති අසන ප්‍රශ්න මෙන්න .screentmux


4
@CraigM භාවිත screen -x -r [screenname]හෝ screen -rxකෙටි ඔබ ක්රියාකාරී තිරය එක් සැසිය නම්. පවතින තිර නිදසුනක් ඇමිණීමට මෙය ඔබට ඉඩ දෙයි.
ලෙකන්ස්ටයින්

6
මෙම උපදෙස් මට එකම ගැටලුවකට උදව් කළ නමුත් මම සිතන්නේ එයට යතුරු ලියනය ඇතුළත් වේ. මම ඔබ ටයිප් කිරීමට අවශ්ය බව ලස්සන විශ්වාසයි Ctrl-bපසුව d/ වෙන්කරනවා පිටව කිරීම සඳහා tmuxසැසිය. tmuxමගේ උබුන්ටු 12.04 හි අනුවාදය සඳහා එය එසේමය.
cxrodgers

18
ඉහත උපදෙස් පිළිපැදීමේදී මම වැරැද්දක් කළෙමි. යමෙකු එකම වැරැද්දකට වැටුණහොත් මම එය බෙදා ගන්නෙමි: දුරස්ථ පරිගණකයේ කවචය වෙනුවට මම මගේ පරිගණකයේ කවචයේ tmux ආරම්භ කළෙමි. යමෙකුට දුරස්ථ පරිගණකයේ කවචයේ tmux ආරම්භ කළ යුතුය.
මර්ට් නුහොග්ලු

6
තිරය ​​දැන් නැවත සංවර්ධනය වෙමින් පවතී: list.gnu.org/archive/html/screen-devel/2014-04/msg00024.html ඔබට ඔබේ පිළිතුර යාවත්කාලීන කළ හැකිද?
මුරු

6
විකල්පයක් ලෙස, ක්රියාත්මක tmux detachටයිප් වෙනුවටctrl-b d
ඇන්ඩෲ

340

විකල්ප 1: nohup

හොඳම ක්‍රමය බොහෝ විට සරලම ක්‍රමයයි.

nohup long-running-command &

එය මේ සඳහා විෙශේෂෙයන්ම සාදන ලද්දකි nohup.log.

man nohup

විකල්ප 2: bg+disown

ctrl+z
bg
disown

ඔබට දැනටමත් ක්‍රියාත්මක වන කාර්යයන් "පසුබිම" කිරීමට අවශ්‍ය නම්, Ctrl+ Zපසුව bgඔබගේ නවතම අත්හිටවූ කාර්යය පසුබිමට දැමීමට ධාවනය කරන්න, එය දිගටම ක්‍රියාත්මක වීමට ඉඩ දෙන්න. disownඔබ ඉවත් වූ පසු ක්‍රියාවලිය දිගටම පවත්වා ගෙන යනු ඇත.


screenඅනෙක් අයට එය කළ හැකිය, නමුත් එය ඔවුන් සඳහා නොවේ. nohupඔබ අතහැර දැමීමට යන බව ඔබ දන්නා bgකාර්යයන් සඳහා සහ ඔබ දැනටමත් ක්‍රියාත්මක වන සහ නැවත ආරම්භ කිරීමට අවශ්‍ය නොවන කාර්යයන් සඳහා මම නිර්දේශ කරමි .

මතක තබා ගන්න, දෙකම විශේෂිත වේ. ඔබ bash භාවිතා නොකරන්නේ නම්, විධාන වෙනස් විය හැකිය.


6
මම නිර්දේශ කරන්නේdisown -h
මිෂෙල්

පතල් කම්කරුවන් සඳහා තිරය සහ ටීඑම්එක්ස් ක්‍රියා නොකරයි, බර් නොහුප් වැඩ කරයි
යසින් ඔකුමු

2
bg+ disownමා වෙනුවෙන් වැඩ කළේ නැත. මට විහිදුම් ස්ක්‍රිප්ට් එකක් ධාවනය වූ අතර මට tmux තුළ ආරම්භ කිරීමට අමතක වූ අතර රැස්වීමකට කලින් පිටත්ව යාමට අවශ්‍ය විය. ස්ක්‍රිප්ට් එක අඛණ්ඩව ප්‍රගතිය කවචයට ලබා දෙයි. ctrl+zක්‍රියාවලිය නැවැත්තුවා, මාව නැවත පහර දෙන්න. bgක්‍රියාවලිය නැවත ආරම්භ කළ නමුත්, එය යතුරු ලියනය කරන්නේ කුමක් දැයි බැලීමට නොහැකි වන පරිදි තත්වය යථා තත්ත්වයට පත් කිරීම ද නැවත ආරම්භ කළේය. කෙසේ වෙතත්, disownවිධානයක් "ප්‍රතික්ෂේප කරන්න: ධාරාව: එවැනි රැකියාවක් නැත"
බ්‍රයන් එච්වීබී

මෙය කිසිම julia myFile.jlහේතුවක් නිසා මට වැඩ කළේ නැත . tmux කරන අතර එය විශිෂ්ටයි.
kggoretrout

මෙය මට වැඩ කළා, බොහොම ස්තූතියි
චැඩ්

221

භාවිතා කිරීමෙන් ඔබට එය කළ හැකිය screen.

man screenවැඩි විස්තර දැනගැනීම සඳහා ටයිප් කරන්න හෝ මෙම තිර මිනිසා පිටුව කියවන්න .

සරල අවස්ථාව:

  • ඔබේ දුරස්ථ කොටුවට ඇතුල් කරන්න. ටයිප් screenකර ඔබට අවශ්‍ය ක්‍රියාවලිය ආරම්භ කරන්න.

  • ඔබන්න Ctrl- Aඑවිට Ctrl- D. මෙය ඔබගේ තිර සැසිය "වෙන් කරයි" නමුත් ඔබගේ ක්‍රියාවලි ක්‍රියාත්මක වේ. ඔබට දැන් දුරස්ථ කොටුවෙන් ඉවත් විය හැකිය.

  • ඔබට පසුව නැවත පැමිණීමට අවශ්‍ය නම්, නැවත ලොග් වී ටයිප් කරන්න screen -rමෙය ඔබගේ තිර සැසිය "නැවත ආරම්භ කරනු ඇත", එවිට ඔබේ ක්‍රියාවලියේ ප්‍රතිදානය ඔබට දැකගත හැකිය.


34
පසුව සාමාන්‍යයෙන් screen -S nameනිවැරදි තිරයට සම්බන්ධ වීම පහසු කිරීම සඳහා මම සාමාන්‍යයෙන් මගේ තිර සැසි නම් කරමි .
ඩේවිඩ් ඔනිල්

සබැඳිය
අක්‍රීයයි

1
පුද්ගලිකව, මම කිසිදු පැකේජ පාලන මෘදුකාංගයක් නොමැතිව කොටුවක වැඩ කරමි. ප්‍රභවයෙන් TMUX (මට පෞද්ගලිකව අත්දැකීම් හා සමාන අත්දැකීම් ඇති) සඳහා පරායත්තතා ගොඩනැගීම සඳහා පැය භාගයක් පමණ ගත කිරීමෙන් පසුව, තිරය මට වඩා හොඳ හා සරල විසඳුම බව පැහැදිලි විය. ටීඑල්; ඩීආර්: මෙම ගැටළුවට ප්‍රශස්ත විසඳුම රඳා පවතින්නේ භාවිත නඩුව, යන්ත්‍රය සහ ඔබ සැකසීමට කොපමණ කාලයක් ගතවේද යන්න මතය. මෙම පිළිතුරට ස්තූතියි :)
මැක්ස් වොන් හිපල්

screen -Sනිවාඩු යාමට පෙර සහ screen -rනැවත පැමිණෙන විට ඒකාබද්ධ වීම පුදුම සහගතය!
මෙලෝමන්

මේ සඳහා ස්තූතියි. Tmux නොතිබූ අතර මෙම විසඳුම මා වෙනුවෙන් ක්‍රියාත්මක විය (මම ලිනක්ස් යන්ත්‍රයකට මාරු වන විට කවුළු සඳහා බෑෂ් අනුවාදයක් භාවිතා කරමි)
මයිකල් සෝරෙන්සන්

87

Screen සහ nohup වඩා හොඳ ක්‍රමයයි, නමුත් ඔබට දැනටමත් තිරය හෝ nohup නොමැතිව ක්‍රියාත්මක වන ක්‍රියාවලියක් වෙන් කිරීමට සිදුවුවහොත් ඔබට disown විධානය ක්‍රියාත්මක කළ හැකිය.

disown [-ar] [-h] [jobspec… |pid… ]

විකල්ප තොරව, එක් එක් ඉවත් jobspec ක්රියාකාරී රැකියා මේසයෙන්. -hවිකල්පය ලබා දී ඇත්නම් , කාර්යය මේසයෙන් ඉවත් නොකෙරේ, නමුත් සලකුණු කර ඇති අතර එමඟින් ෂෙල් එකට SIGHUP ලැබෙන්නේ නම් SIGHUP රැකියාවට නොයවනු ඇත. නම් jobspec සහභාගී නො වන අතර, හෝ -aහෝ -rවිකල්පය සපයා ඇත, වත්මන් රැකියා භාවිතා කරයි. රැකියා ස්ථානයක් සපයා නොමැති නම්, -aවිකල්පය යනු සියලු රැකියා ඉවත් කිරීම හෝ සලකුණු කිරීම ය; ජොබ්ස්පෙක් තර්කයක් -rනොමැතිව ඇති විකල්පය ක්‍රියාත්මක වන රැකියා සඳහා සීමා කරයි.

ප්‍රතික්ෂේප කිරීමත් සමඟ ඔබට ටර්මිනලය වසා දමා ක්‍රියාවලිය යන්ත්‍රය මත ක්‍රියාත්මක කළ හැකිය.


12
මෙය කිරීමට මගේ ප්‍රියතම ක්‍රමය ද වේ. මම නිතර භාවිතා කරමිdisown -a && exit
ස්ටෙෆානෝ පලසෝ

1
පරිපූර්ණ. මෙය සුන්දර ආ command ාවක් වන අතර සියලු උඩු යටිකුරු කිරීමට සුදුසුයි!
ග්‍රෙග්

8
එක් පරිස්සම් සහගත වචනයක්, මම Ctrl-Z සමඟ ධාවනය කිරීමේ ක්‍රියාවලියක් නැවැත්වූ අතර ඇමතීමට පෙර පසුබිමේ එය ආරම්භ නොකළ disownඅතර එය එය මරා දැමීය .
HDave

3
ටර්මිනලයට ලිවීමට අවශ්‍ය නම් එය බිඳ වැටෙනු ඇත. ධාවන ක්‍රියාවලියක ප්‍රතිදානය හරවා යැවීම එතරම් පහසු නැත. Nohup සමඟ එය නිසි ලෙස ආරම්භ කිරීම වඩා හොඳය.
ජිග්ගුන්ජර්

2
මෙය හොඳ පිළිතුරකි, මන්ද එය ප්‍රශ්නයට කෙලින්ම පිළිතුරු සපයන බැවිනි. ප්රශ්නයේ කතුවරයා දැනටමත් දිගු විධාන පොකුරක් ක්රියාත්මක කිරීමෙන් පසු කුමක් කළ යුතු දැයි විමසීය . මෙම පිළිතුරු බොහොමයක් ඔබ විධාන ක්‍රියාත්මක කිරීමට පෙර කුමක් කළ යුතු දැයි ඔබට දන්වයි.
q0rban

55

මම විශාල එම්වී එකක සිරවී සිටිමි, එම නිසා ක්‍රියාවලිය නැවැත්වීමට, තිරය සැකසීමට සහ නැවත එය ආරම්භ කිරීමට මට නොහැකි විය. මූලික වශයෙන් පහත සඳහන් පියවරයන් අනුගමනය කරමින් ක්‍රියාවලිය ක්‍රියාත්මක වීමත් සමඟ ssh සැසියෙන් පිටවීමට මට හැකි විය:

  1. ssh [සේවාදායකය]
  2. විධානය
  3. Ctrl+Z
  4. bg
  5. විසන්ධි කරන්න [ක්‍රියාවලිය pid අත්‍යවශ්‍ය නොවේ, පෙරනිමිය අවසන් වේ]
  6. පිටවීම

පියවර 3 වත්මන් ක්‍රියාවලිය විරාම කරයි (උදා: මගේ 'mv' විධානය).
4 වන පියවර විරාම කළ ක්‍රියාවලිය පසුබිමට දමා නැවත ආරම්භ කරයි.
පියවර 5 මඟින් ක්‍රියාවලිය ප්‍රතික්ෂේප කිරීමට ඔබට ඉඩ සලසයි. ** රැකියා ලැයිස්තුවක් ලබා ගැනීමට jobsපෙර ටයිප් කරන්න .


** ප්‍රතික්ෂේප කිරීම සම්බන්ධයෙන් (බාෂ් අත්පොතෙන්):

disown [-ar] [-h] [jobspec ... | pid ... ]
              Without  options,  remove  each jobspec from the table of active
              jobs.  If jobspec is not present, and neither the -a nor the  -r
              option  is  supplied, the current job is used.  If the -h option
              is given, each jobspec is not removed from  the  table,  but  is
              marked  so  that  SIGHUP  is  not  sent  to the job if the shell
              receives a SIGHUP.  If no jobspec is  supplied,  the  -a  option
              means  to  remove or mark all jobs; the -r option without a job‐
              spec argument restricts operation to running jobs.   The  return
              value is 0 unless a jobspec does not specify a valid job.

2
බිල්ට් ඉන් සෑම විටම මගේ පළමු තේරීම වේ :) THX
ken_oy

මෙම පිළිතුර නිවැරදි යැයි සලකුණු කළ යුතුය. මෙම ගැටළුව විසඳීම සඳහා ස්ථාපනය කිරීම සහ තිරයට හුරු වීම අතිශයෝක්තියකි.
උල්රිච්-ලොරෙන්ස් ෂ්ලෙටර්

ඔබ දැනටමත් ඕනෑම විධානයක් ආරම්භ කර ඇති අතර එය දිගු කාලයක් තිස්සේ ක්‍රියාත්මක වන විට මෙය ඉතා ප්‍රයෝජනවත් වේ. TMUX සැසියකින් එය අවසන් කිරීමට හා ආරම්භ කිරීමට කාලය ගතවනු ඇත
දීපාලි මිට්ටාල්

1
@ ටොම්-බ්‍රොස්මන්: කරුණාකර මේ වගේ අනවශ්‍ය සංස්කරණයන් ගැන විමසිල්ලෙන් සිටින්න ! රැකියා පිරිවිතරයකින් තොරව ආයාචනා කරන්නේ නම්, disownබිල්ට් විධානය නවීනතම පසුබිම් කාර්යය මත ක්‍රියා කරයි.
ඩේවිඩ් ෆෝස්ටර්

23

බහු ssh සම්බන්ධතා හරහා වැඩසටහන් සහ පර්යන්ත තත්වය පවත්වා ගැනීමට ඔබට භාවිතා කළ හැකි ප්‍රධාන වැඩසටහන් දෙකක් තිබේ. ඒවා තිරය (වත්මන්, නමුත් අවාසනාවකට නොදැනේ. පෙනෙන විදිහට දැන් ක්‍රියාකාරීව සංවර්ධනය වෙමින් පවතී ) සහ tmux (නව, ක්‍රියාශීලීව නඩත්තු). බයෝබු යනු මෙම පද්ධතියට ඉහළින් ධාවනය කළ හැකි සහ අමතර උබුන්ටු තත්ව තොරතුරු ලබා දිය හැකි ඉදිරිපස අන්තයකි. නව ස්ථාපනයන්හිදී එය tmux බැකෙන්ඩයක් ලෙස භාවිතා කරනු ඇත, ඔබට පැරණි බයෝබු ස්ථාපනය සහ දැනට පවතින වින්‍යාසයක් තිබේ නම් එය පෙර පසුබිම නඩත්තු කරනු ඇත, එය තිරය හෝ tmux වේ.

බයෝබු

ඩේබියන් පාදක කරගත් යන්ත්‍රයකින් බයෝබු පරිගණකයේ ස්ථාපනය කළ හැකිය:

sudo aptitude install byobu

Yum භාවිතා කරමින්, ඔබ එසේ කරයි

su -c 'yum install byobu'

වෙනත් බෙදාහැරීම් මත බයිබු ස්ථාපනය කිරීමට ද හැකිය.

බයිබු භාවිතා කිරීම

Ssh byobuභාවිතයෙන් සම්බන්ධ වීමෙන් පසු ධාරක යන්ත්‍රය මත ධාවනය කිරීමෙන් ඔබට බයිබු ආරම්භ කළ හැකිය . මෙය ඔබට මේ ආකාරයට පෙනෙන කවචයක් ලබා දෙනු ඇත:

image-byobu

-X විකල්පය සහිත උබුන්ටු යන්ත්‍රයක ඔබට බයෝබු ටර්මිනලය භාවිතා කළ හැකි අතර පරිපූර්ණ ලෙස ක්‍රියා කරන බයිබු එකක් පහසුවෙන් ලබා ගත හැකිය.

භාවිතය:

ටයිප් කිරීමෙන් byobu ආරම්භ කරන්න byobu.

වත්මන් සැසිය තුළ නව කවුළුවක් නිර්මාණය කිරීමට ඔබට F2 ඔබන්න, විවිධ කවුළු අතර මාරුවීමට F3-F4.

බයිබු පිළිබඳ හොඳම කොටස නම්, ඔබට පර්යන්තයෙන් ඉවත්වීම සඳහා පර්යන්තය තුළ ක්‍රියාත්මක වන ක්‍රියාවලීන් විනාශ කිරීමට අවශ්‍ය නැත. ඔබට සරලවම තිරය / ටීඑම්එක්ස් (බයිබූගේ ඇටසැකිල්ල) පසුබිමට යැවිය හැකි අතර ඊළඟ වතාවේ නැවත ආරම්භ කරන්න:

  • බයිබු අතහැර එය ධාවනය කර තබා ගැනීමට (වෙන් කරන්න) F6 ඔබන්න.
  • ඊළඟ වතාවේ ඔබ පැමිණෙන විට, එසේ කරන්න byobu, ඔබ සිටි තැනට ආපසු යන්න.

    byobu-detach-attach

ඔබට විවිධ බයිබු සැසි නිර්මාණය කළ හැකිය byobu -S session1. ඔබ නැවත පැමිණෙන විට ඔබට ඒ දෙකටම සම්බන්ධ විය හැකිය.

ඔබට බයෝබු භාවිතයෙන් තවත් බොහෝ දේ කළ හැකිය. එය භාවිතා කරන්න! නිශ්චිත මාර්ගෝපදේශ කිහිපයක් මෙහි හෝ මෙහි ඇත.


මම පුටි මත පදනම් වූ සැසියක සිට මගේ උබුන්ටු පෙට්ටියට බයෝබු භාවිතා කිරීමට උත්සාහ කළෙමි, නමුත් මට තත්ව රේඛාව නැවත නැවතත් දර්ශනය මත අනුචලනය වේ. එය නිසි ලෙස වෙන් කර F6 එබුවද, එය මගේ සැකසුම තුළ භාවිතා කළ හැකි විසඳුමක් නොවීය.
jfmessier

1
fjfmessier එයට හේතුව පුට්ටි ncurses (utf-8 මූලික වශයෙන්) හොඳින් නොගන්නා බැවිනි. මෙම ත්‍රෙඩ් එක අනුගමනය කිරීමෙන් මෙම ගැටළුව තුරන් කළ හැකිය - stackoverflow.com/questions/10731099/…
සිද්ධාර්ථතා

මේක නම් නියමයි! 1. මා එම අවස්ථාවේ දී 2 රොබෝ ධාවනය කිරීමට ලබා මට කඩිනම් මම මගේ සුපුරුදු shell එක ලෙස bash සහ 2. සමග සක්රීය කිරීම බවක් හැකි වර්ණ ගැන්වූ bash දෙන තවමත් මත වැඩ කරන්න තවත් පර්යන්තය තියෙනවා! Id සිද්ධාර්ථාර්ත් ඔබට උචිතයි සර්!
දේව්

17

ක්‍රියාවලිය ආරම්භ වූ පසු ඔබට මෙය කළ නොහැක, ඔබ දිගුකාලීන රැකියාවක් කිරීමට පෙර දේවල් සකස් කර ගත යුතුය.

ඔබට nohup භාවිතා කළ හැකි නමුත් නවීන ප්‍ර wisdom ාව මඟින් ඔබේ පිවිසුම ලෙස තිරය හෝ බයෝබු භාවිතා කරන ලෙස යෝජනා කරයි, එවිට ඔබට දේවල් වෙන් කර තබා ගත හැකිය.

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

මෙහි තිරයට සාධාරණ ආරම්භක මාර්ගෝපදේශයක් ඇත.

byobu මෙනු ආදිය සමඟ තිරය මත පහසුවෙන් භාවිතා කළ හැකි අතුරු මුහුණතක් තබයි. එය නව උබුන්ටු මත තිරය දැනට ක්‍රියාත්මක කිරීම ද වේ. නව පර්යන්තයක් ආරම්භ කිරීමට F2 ඉදිරියට සහ පසුපසට ටොගල් කිරීමට සහ විසන්ධි කිරීමට F6. පර්යන්ත ස්ථිරවම අවසන් කිරීම සඳහා පිටවීම ටයිප් කරන්න.


byobu මේ දිනවල tmux භාවිතා කරයි ..
scottl

13
"ක්‍රියාවලිය ආරම්භ වූ පසු ඔබට මෙය කළ නොහැක. ඔබ දිගුකාලීන රැකියාවක් කිරීමට පෙර දේවල් සකස් කර ගත යුතුය." - නැත, ඔබට මෙය disownසාක්ෂාත් කර ගැනීමට භාවිතා කළ හැකිය . @ බාස්ගේ පිළිතුර බලන්න
පොහොසත්

1
තිරය ​​සහ ටීඑම්එක්ස් ඉගෙන ගැනීමට වෙහෙස වූ පසු .... බයිබු මගේ දෑසට කඳුළු ගෙන ආවේ
HDave

disownනම් අවශ්ය පමණක් Ctrl-z, එවිට bgක්රියාකාරී පර්යන්තය හා පසුබිම එය ලබා ගැනීමට. එහෙනම් disown.
mimoralea

8

හේයි, මම එකඟ වූ අතර තිරය වඩාත්ම කාර්යක්ෂම විකල්පයයි. ඔබට vncserver භාවිතා කර එය මත ක්‍රියාවලිය ආරම්භ කළ හැකිය.

ඔබේ එකම අභිප්‍රාය වන්නේ ක්‍රියාවලිය ක්‍රියාත්මක වීම සහ එය නැවත පාලනය කර ගැනීම අවශ්‍ය නොවේ නම් සහ ඔබ නොදැනුවත්වම සැසිය වසා දැමිය යුතු අතර ඔබ දැනටමත් ක්‍රියාවලිය ක්‍රියාත්මක කර තිබේ නම් ඔබ වාසනාවන්ත නොවේ නම් ඔබ ෂෙල් එක ලෙස බාෂ් භාවිතා කළා

පළමුව ඔබ Ctrl + Z ටයිප් කිරීමෙන් පසු ක්‍රියාවලියට පසුබිමට යැවිය යුතුය. ඉන්පසු bg% 1 (අංකය රැකියා අංකය මත රඳා පවතී, සාමාන්‍යයෙන් එය 1 වේ, නමුත් විධාන රැකියා භාවිතයෙන් ඔබට පහසුවෙන් ලැයිස්තුව ඇද ගත හැකිය)

අවසාන වශයෙන් විසුරුවා හැරීමේ විධානය ඉල්ලා සිටින්න (පසුව ජොබිඩ් ... bg විධානයට සමානය)

මෙය ඔබගේ කවචය සහ ක්‍රියාවලිය පසුබිම තුළ ඇති දෙමාපිය-ළමා සම්බන්ධතාවය ඉවත් කරයි, ඔබේ කවචය අවසන් වූ විට එය මිය යාම වළක්වයි.


2
මෙම පිළිතුර හොඳම ය! හැමෝම කතා කරන්නේ ඇයි screen, ප්‍රශ්නය පශ්චාත්-පිවිසුම් සිදුවීමක්, ක්‍රියාවලි දිගටම පවත්වා ගෙන යන්නේ කෙසේද, දැන් පිවිසීමෙන් පසුව නමුත් ඒවා ආරම්භ කිරීමට පෙර. නියම පිළිතුර ජෝර්ජ්, ඔබ මට ඇත්තටම උදව් කළා! :)
jwbensley

1
සරලව bg(තොරව %1) පෙරනිමි වත්මන් රැකියා නිසා බොහෝ විට, ප්රමාණවත්
වෝල්ටර් Tross

සවිස්තරාත්මක පිළිතුරක් තිබීම සතුටක්: ප්‍රියරි (කල්තියා සැකසීම): ascii පර්යන්ත තිරය (පැරණි), tmux (neewer); X කවුළු: vnc (පැරණි, තවමත් නඩත්තු කර ඇති), xpra (නව), xpra මූල රහිත ය. පශ්චාත් (ඔබ ආරම්භ කළ පසු දිගටම): ^ ඉසෙඩ්, ප්‍රතික්ෂේප කරන්න, ... නමුත් මම මෙයට වඩා මස් කෑමට කම්මැලි ය.
Krazy Glew

8

මා දීර් time කාලයක් තිස්සේ ධාවනය කර ඇති තනි ෂෙල් ස්ක්‍රිප්ට් එකක් සඳහා, මම පුරනය වී '&' භාවිතා කරමින් පසුබිම තුළ ක්‍රියාවලිය ක්‍රියාත්මක කරමි.

උදාහරණයක්:

/path/to/my/script &

මම මගේ SSH සැසිය ඉවත් කර විසන්ධි කර ඇත. ටික කලකට පසු මම ලොග් වූ විට, ස්ක්‍රිප්ට් එක අඛණ්ඩව දත්ත රැස් කිරීමෙන් සනාථ වන පරිදි ස්ක්‍රිප්ට් තවමත් ක්‍රියාත්මක වේ.


3
ඔව්, මෙම සරල විසඳුමට වඩා තිරය / ටීඑම්එක්ස් වඩා හොඳ වන්නේ කෙසේදැයි දැන ගැනීමට මම කැමතියි.
මැඩ්ස් ස්කජර්න්

ඔව්, මට මෙය මගේ උබුන්ටු වලද දැකිය හැකිය, නමුත් එය න්‍යායිකව සිදු නොවිය යුතුය. ඒ ඇයි දැයි මට තේරෙන්නේ නැත
ඩැනියෙල් පින්යෝල්

1
AdMadsSkjern ඔබට මෙම ක්‍රමය භාවිතයෙන් ස්ක්‍රිප්ටයට කිසිදු ආදානයක් ඇතුළත් කළ නොහැකි බැවිනි.
කෙන් ෂාප්

1
AdMadsSkjern හේතුව නම්, ඔබ මෙවැනි ක්‍රියාදාමයන් ක්‍රියාත්මක &කර ඔබේ SSH සැසිවාරයට පිවිසෙන්නේ නම් , ක්‍රියාවලිය තවමත් ක්‍රියාත්මක වන නමුත් ඔබට එම ක්‍රියාවලියේ ප්‍රතිදානය දැකගත නොහැකි වනු ඇත (ඔබේ ස්ක්‍රිප්ට් ඔබ යම් දෙයක් ප්‍රතිරාවය කළහොත් එය නොපෙනේ, නමුත් එය ගොනුවක්
ලිවුවහොත්

සමහර ගොනුව ක්‍රියාත්මක වන අතරතුර ප්‍රතිදානය කරන්නේ කෙසේද? මම >පෙර හෝ පසුව තැබිය යුතුද ?
ඔගස්ටින් නිව්ටන්

4

ඔබ GNU තිරය පරීක්ෂා කර බලා එය ඔබට උපකාරී වේදැයි බලන්න. තථ්‍ය කාලීනව ක්‍රියාත්මක වීමට ඔබට යෙදුම අවශ්‍ය වන්නේ කෙසේද යන්න මත පදනම්ව, එය විසඳීමට වඩා ගැටලු ඇති විය හැකි නමුත් අවම වශයෙන් එය ඔබගේ සැසිය ඔබ කිසි විටෙකත් අතහැර නොගිය ලෙස නැවත ආරම්භ කිරීමට ඉඩ දෙයි.

භාවිතා කරන්නේ කෙසේද:

  • screenපළමු ආරම්භය සඳහා විධානය භාවිතා කරන්න, හඳුන්වාදීමේ පණිවිඩ හරහා අනුචලනය කරන්න, ඔබට පර්යන්තයක් ලබා දිය යුතුය.
  • Ca Cc තවත් පර්යන්තයක් විවෘත කරයි
  • Ca Ck ටර්මිනලයක් මරයි
  • ඔබට පර්යන්ත හරහා චක්‍රීය කිරීමට Ca C-Space සහ Ca C-Backspace භාවිතා කළ හැකිය
  • ඔබ වැඩිපුරම භාවිතා කරන්නේ පර්යන්ත දෙකක් පමණක් නම් Ca Ca පහසුය
  • Ca Cd වත්මන් තිර සැසිය වෙන් කර තිර වලින් පිටවෙයි. එවිට ඔබට screen -rඑම සැසිය නැවත ආරම්භ කිරීමට භාවිතා කළ හැකිය . ඔබට එකවර වෙන් කළ තිර සැසි කිහිපයක් තිබිය හැකිය, මේ අවස්ථාවේ දී ඔබට ලබා ගත හැකි සැසි ලැයිස්තුවක් පෙන්වනු ඇත.

තවත් බොහෝ විකල්ප ඇත, උදාහරණයක් ලෙස බෙදීම් තිර, එසේම සියලු කෙටිමං සම්පූර්ණයෙන්ම අභිරුචිකරණය කළ හැකිය.


3

සරලම පිළිතුර ...

ctrl + z මඟින් ක්‍රියාත්මක වන වැඩසටහන අත්හිටුවනු ඇත

"bg" එය පසුබිමේ ධාවනය කරයි


5
ක්‍රියාවලිය නොසලකා හැරීමකින් තොරව ( disownහෝ වෙනත් දෙයක් සමඟ nohup), මෙය සාමාන්‍යයෙන් SSH සැසිය අවසන් වීමෙන් පසුව ක්‍රියාවලිය දිගටම පවත්වා නොගනු ඇත.
එලියා කගන්

3
මගේ උබුන්ටු සේවාදායකයේ, පෙරනිමි සැකසුම සමඟ, එය දිගටම ක්‍රියාත්මක වේ!
මැඩ්ස් ස්කජර්න්

3

පහසුම ක්‍රමය නම් පසුබිම තුළ ඔබේ විධානය ක්‍රියාත්මක කිරීමයි &. ඉන්පසු ලියන්න:

disown -a

0

සෑම කෙනෙකුම භාවිතා කිරීමට පවසන අතර disown(ඔබ දැනටමත් ක්‍රියාවලිය ආරම්භ කිරීමෙන් පසු ඔබට ඇති එකම විකල්පය), nohupහෝ විධානය ක්‍රියාත්මක කිරීම පවා screenඔබට විධානයෙන් සියලුම ප්‍රතිදානයන් දැකීමට අවශ්‍ය නම් එය ප්‍රයෝජනවත් වේ ... මම රසිකයෙක් screen.. මම තවමත් ලිනක්ස් හි නවතම ප්‍රධාන ධාරාවේ බෙදා හැරීම් අත්හදා බලා ඇති අතර, එම කාර්යය පසුබිමට දමා ඉවත්ව යාමෙන් සිදුවන සියලුම ක්‍රියාදාමයන් මිය යාමට හේතු නොවේ. ගෝලීය පසුබිමක් හෝ යමක් තිබිය යුතුය. මම මෙය පැරණි පද්ධති කිහිපයක (ස්ලැක්වෙයාර් 12) උත්සාහ කරමි. මම එය අතින් මරා දමන තුරු මගේ පරීක්ෂණ පිටපත ක්‍රියාත්මක වේ:

shell$ cat > test.pl

#!/usr/bin/perl
while(1){
     sleep(1);
}
    shell$ perl ./test.pl &
    shell$ exit
    logout
    shell$ ps aux test.pl
    mymom 31337     1  0 13:25 ?        00:00:00 perl ./test.pl
    shell$ 

screenමගේ ස්ක්‍රිප්ට් ලිපිගොනු ලිපිගොනු හෝ වෙනත් ඕනෑම දෙයක් ලිවීමට ලිව්වත් මෙය ක්‍රියාත්මක කිරීමට හොඳම ක්‍රමය එය බව මම එකඟ වන අතර .. මට කිසි විටෙකත් භාවිතා කිරීමට අවශ්‍ය නොවීය, disown -a නැතහොත් nohupඑය සම්පූර්ණ මානසික ආතතියෙන් තොර විය. පෙරනිමියෙන් බාෂ් හැසිරෙන ආකාරය ගැන යමෙකුට යම් අවබෝධයක් ලබා ගත හැකිද? සමහර පද්ධති පරිපාලකයින් විශාල ෂෙල් වෙඩි වල පෙරනිමි වෙනස් කර ඔවුන්ගේ පරිශීලකයින්ගේ ක්‍රියාවලීන් පද්ධතිය අධික ලෙස පැටවීමෙන් වළක්වා ගත හැකිද?


ඔබට තවත් විමසුමක් ඇත්නම් කරුණාකර එය නව ප්‍රශ්නයක්
heemayl

0

අවාසනාවකට මෙන්, අවසන් කරන ලද SSH සැසියක ප්‍රති t ලයක් ලෙස tmux හෝ තිරය විනාශ වේ. මෙයට හේතුව systemdසැසියකින් ඉවත් වූ පසු ඕනෑම ළමා ක්‍රියාවලියක් අවසන් වීමයි.

ඔබගේ logind.conf( /etc/systemd/logind.conf) හි මෙම සැකසුම වෙනස් කළ හැකිය :

KillUserProcesses=no

විකල්පයක් ලෙස, tmux හැර වෙනත් කල් පවතින ක්‍රියාවලියක් විනාශ කිරීමට ඉඩ දීම සඳහා , ඔබට එහි පිවිසුම් සැසිය තුළ tmux ආරම්භ කළ හැකිය:

systemd-run --scope --user tmux

Https://unix.stackexchange.com/questions/490267 හි පිළිතුරු දීමට ස්තූතියි .


-1

වෙනුවට :

cmd options; 

පෙර එකතු කරන්න nohup:

nohup cmd options & 

එවිට, ඔබට පහත දැක්වෙන පරිදි කොන්සෝලය stdout දැක ගත හැකිය:

tail -f nohup.out
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.