5 Modi kif Żomm Sessjonijiet u Proċessi SSH Remoti Jiddejqu Wara Skonnettjar


SSH jew Secure Shell f'termini sempliċi huwa mod li bih persuna tista' taċċessa utent ieħor mill-bogħod fuq sistema oħra iżda biss fil-linja tal-kmand jiġifieri modalità mhux GUI. F'termini aktar tekniċi, meta nagħtu ssh fuq utent ieħor fuq xi sistema oħra u nħaddmu kmandi fuq dik il-magna, fil-fatt joħloq psewdo-terminal u jehmeż mal-qoxra tal-login tal-utent li illoggja.

Meta noħorġu mis-sessjoni jew is-sessjoni tispiċċa wara li nkunu inattivi għal żmien pjuttost twil, is-sinjal SIGHUP jintbagħat lill-psewdo-terminal u l-impjiegi kollha li jkunu tħaddmu fuq dak it-terminal, anke l-impjiegi li għandhom l-impjiegi prinċipali tagħhom qed jinbdew fuq il-psewdo-terminal jintbagħtu wkoll is-sinjal SIGHUP u huma sfurzati jtemmu.

L-impjiegi biss li ġew ikkonfigurati biex jinjoraw dan is-sinjal huma dawk li jibqgħu ħajjin mit-terminazzjoni tas-sessjoni. Fuq is-sistemi Linux, jista 'jkollna ħafna modi kif jagħmlu dawn l-impjiegi jaħdmu fuq is-server remot jew kwalunkwe magna anki wara l-logout tal-utent u t-terminazzjoni tas-sessjoni.

Ifhem il-Proċessi fuq Linux

Proċessi normali huma dawk li għandhom ħajja ta 'sessjoni. Dawn jinbdew matul is-sessjoni bħala proċessi ta' tagħrif miksub u jispiċċaw f'ċertu medda ta' żmien jew meta s-sessjoni tiilloggja. Dawn il-proċessi għandhom is-sid tagħhom bħala kwalunkwe utent validu tas-sistema, inkluż l-għeruq.

Proċessi orfni huma dawk li inizjalment kellhom ġenitur li ħoloq il-proċess iżda wara xi żmien, il-proċess ġenitur miet jew iġġarraf involontarjament, u b'hekk init ikun il-ġenitur ta' dak il-proċess. Proċessi bħal dawn għandhom init bħala l-ġenitur immedjat tagħhom li jistenna fuq dawn il-proċessi sakemm imutu jew jispiċċaw.

Dawn huma xi proċessi intenzjonalment orfni, tali proċessi li jitħallew jaħdmu intenzjonalment fis-sistema jissejħu bħala proċessi demon jew intenzjonalment orfni. Normalment huma proċessi fit-tul li ladarba jinbdew u mbagħad jinqalgħu minn kwalunkwe terminal ta 'kontroll sabiex ikunu jistgħu jaħdmu fl-isfond sakemm ma jitlestewx, jew jispiċċaw jitfgħu żball. Ġenitur ta 'proċessi bħal dawn intenzjonalment imut jagħmlu t-tfal tesegwixxi fl-isfond.

Tekniki biex iżżomm is-Sessjoni SSH taħdem wara l-iskonnessjoni

Jista' jkun hemm diversi modi kif is-sessjonijiet ssh jitħallew jaħdmu wara l-iskonnessjoni kif deskritt hawn taħt:

L-iskrin huwa Window Manager ta’ test għal Linux li jippermetti lill-utent jimmaniġġja sessjonijiet terminali multipli fl-istess ħin, jaqleb bejn sessjonijiet, illoggjar tas-sessjoni għas-sessjonijiet li qed jaħdmu fuq l-iskrin, u anke jerġa’ jibda s-sessjoni fi kwalunkwe ħin li nixtiequ mingħajr ma ninkwieta dwar is-sessjoni li tkun illoggjata barra jew it-terminal qed jingħalaq.

sessjonijiet tal-iskrin jistgħu jinbdew u mbagħad jinqalgħu mit-terminal tal-kontroll u jħalluhom jaħdmu fl-isfond u mbagħad jerġgħu jibdew fi kwalunkwe ħin u anke fi kwalunkwe post. Biss trid tibda s-sessjoni tiegħek fuq l-iskrin u meta trid, aqla 'mill-psewdo-terminal (jew it-terminal ta' kontroll) u logout. Meta tħoss, tista' terġa' tidħol u terġa' tibda s-sessjoni.

Wara li ttajpja l-kmand tal-‘screen’, int tkun f’sessjoni ġdida tal-iskrin, f’din is-sessjoni tista’ toħloq twieqi ġodda, tgħaddi bejn twieqi, tissakkar l-iskrin, u tagħmel ħafna aktar affarijiet li tista’ tagħmel fuq terminal normali.

$ screen

Ladarba bdiet is-sessjoni tal-iskrin, tista 'tmexxi kwalunkwe kmand u żżomm is-sessjoni taħdem billi tneħħi s-sessjoni.

Eżatt meta trid tilloggja mis-sessjoni remota, imma trid iżżomm ħajja s-sessjoni li ħloqt fuq dik il-magna, allura dak li għandek bżonn tagħmel hu li aqla 'l-iskrin mit-terminal sabiex ma jibqax l-ebda terminal ta' kontroll. Wara li tagħmel dan, tista 'tagħmel logout b'mod sikur.

Biex tneħħi skrin mit-terminal remot, sempliċement agħfas \Ctrl+a” immedjatament segwit minn \d” u tkun lura lejn it-terminal billi tara l-messaġġ li l-Iskrin jinqala'. Issa tista' tilloggja b'mod sikur u s-sessjoni tiegħek titħalla ħajja.

Jekk trid terġa 'tibda sessjoni ta' skrin maqtugħ li tkun ħallejt qabel ma illoggjat, erġa' illoggja fit-terminal remot mill-ġdid u ikteb \screen -r f'każ li jinfetaħ skrin wieħed biss, u jekk sessjonijiet multipli tal-iskrin jinfetħu run \screen -r .

$ screen -r
$ screen -r <pid.tty.host>

Biex Tgħallem aktar dwar il-kmand tal-iskrin u kif tużah sempliċement segwi l-link: Uża Kmand tal-iskrin biex Immaniġġja s-Sessjonijiet tat-Terminal tal-Linux

Tmux huwa softwer ieħor li huwa maħluq biex ikun sostitut għall-iskrin. Għandu ħafna mill-kapaċitajiet tal-iskrin, bi ftit kapaċitajiet addizzjonali li jagħmluha aktar qawwija mill-iskrin.

Jippermetti, apparti l-għażliet kollha offruti mill-iskrin, qsim ta’ panewijiet orizzontalment jew vertikalment bejn twieqi multipli, tibdil fid-daqs tal-ħġieġ tat-twieqi, monitoraġġ tal-attività tas-sessjoni, scripting bl-użu tal-modalità tal-linja tal-kmand eċċ. Minħabba dawn il-karatteristiċi ta’ tmux, ilu jgawdi minn adozzjoni wiesgħa bi kważi id-distribuzzjonijiet Unix kollha u anke ġie inkluż fis-sistema bażi ta 'OpenBSD.

Wara li tagħmel ssh fuq il-host remot u ttajpja tmux, int se tidħol f'sessjoni ġdida b'tieqa ġdida li tiftaħ quddiemek, fejn tista 'tagħmel kull ħaġa li tagħmel fuq terminal normali.

$ tmux

Wara li twettaq l-operazzjonijiet tiegħek fuq it-terminal, tista 'taqla' dik is-sessjoni mit-terminal ta 'kontroll sabiex tidħol fl-isfond u tkun tista' tilloggja b'mod sikur.

Jew tista' tħaddem \tmux detach meta tħaddem is-sessjoni tmux jew tista' tuża l-shortcut (Ctrl+b imbagħad d). Wara dan is-sessjoni attwali tiegħek tinqala' u int ser terġa' lura fit-terminal tiegħek minn fejn tista' toħroġ mingħajr periklu.

$ tmux detach

Biex terġa 'tiftaħ is-sessjoni li ħriġt u ħalliet kif inhi meta illoggjajt mis-sistema, erġa' illoggja mal-magna remota u ikteb \tmux attach biex terġa' twaħħal mas-sessjoni magħluqa u tkun għadha hemm u ġiri.

$ tmux attach

Biex Tgħallem aktar dwar tmux u kif tużah sempliċement segwi l-link: Uża Tmux Terminal Multiplexer biex Immaniġġja Multiple Linux Terminals.

Jekk m'intix daqshekk familjari ma 'screen jew tmux, tista' tuża nohup u tibgħat il-kmand fit-tul tiegħek fl-isfond sabiex tkun tista 'tkompli filwaqt li l-kmand jibqa' jesegwixxi fl-isfond. Wara dan, tista 'tilloggja mingħajr periklu.

Bil-kmand nohup aħna ngħidu lill-proċess biex jinjora s-sinjal SIGHUP li jintbagħat b'sessjoni ssh mat-terminazzjoni, u b'hekk il-kmand jippersisti anke wara l-logout tas-sessjoni. Mal-logout tas-sessjoni l-kmand huwa detched mit-terminal ta 'kontroll u jibqa' jaħdem fl-isfond bħala proċess demon.

Hawnhekk, huwa xenarju sempliċi fejn, għamilna kmand find biex tfittex fajls fl-isfond fuq sessjoni ssh bl-użu ta 'nohup, wara li l-kompitu ntbagħtet fl-isfond b'ritorn fil-pront immedjatament jagħti PID u ID tax-xogħol tal-proċess ([ JOBID] PID).

# nohup find / -type f $gt; files_in_system.out 2>1 &

Meta terġa' illoggja, tista' tiċċekkja l-istatus tal-kmand, ġġib lura għal tagħrif miksub billi tuża fg %JOBID biex tissorvelja l-progress tiegħu u l-bqija. Hawn taħt, l-output juri li x-xogħol tlesta peress li ma jurix mal-login mill-ġdid, u ta l-output li huwa muri.

# fg %JOBID

Mod eleganti ieħor ta' kif tħalli l-kmand tiegħek jew biċċa xogħol waħda taħdem fl-isfond u tibqa' ħaj anke wara l-logout jew l-iskonnessjoni tas-sessjoni huwa billi tuża ċaħda.

Tiċħad, tneħħi l-impjieg mil-lista tax-xogħol tal-proċess tas-sistema, sabiex il-proċess ikun protett milli jinqatel waqt l-iskonnessjoni tas-sessjoni peress li mhux se jirċievi SIGHUP mill-qoxra meta toħroġ.

L-iżvantaġġ ta 'dan il-metodu huwa li, għandu jintuża biss għall-impjiegi li m'għandhomx bżonn l-ebda input mill-stdin u la jeħtieġ li tikteb lil stdout, sakemm ma tindirizzax speċifikament mill-ġdid l-input u l-output tal-impjiegi, għaliex meta l-impjieg jipprova jinteraġixxi ma' stdin jew stdout, se tieqaf.

Hawn taħt, bgħatna kmand ping fl-isfond sabiex ut tkompli taħdem u titneħħa mil-lista tax-xogħol. Kif jidher, l-impjieg kien l-ewwel sospiż, u wara kien għadu fil-lista tax-xogħol bħala Process ID: 15368.

$ ping linux-console.net > pingout &
$ jobs -l
$ disown -h %1
$ ps -ef | grep ping

Wara dak is-sinjal taċ-ċaħda ġie mgħoddi lill-impjieg, u tneħħa mil-lista tax-xogħol, għalkemm kien għadu għaddej fl-isfond. Ix-xogħol ikun għadu għaddej meta terġa' tidħol fis-server remot kif jidher hawn taħt.

$ ps -ef | grep ping

Utilità oħra biex tinkiseb l-imġieba meħtieġa hija setsid. Nohup għandu żvantaġġ fis-sens li l-grupp tal-proċess tal-proċess jibqa 'l-istess sabiex il-proċess li jaħdem b'nohup huwa vulnerabbli għal kwalunkwe sinjal mibgħut lill-grupp tal-proċess kollu (bħal Ctrl + C).

setsid min-naħa l-oħra jalloka grupp ta 'proċess ġdid għall-proċess li qed jiġi esegwit u għalhekk, il-proċess maħluq huwa totalment fi grupp ta' proċessi allokat ġdid u jista 'jwettaq b'mod sikur mingħajr biża' li jinqatel anke wara l-logout tas-sessjoni.

Hawnhekk, turi li l-proċess 'irqad 10m' ġie maqtugħ mit-terminal ta 'kontroll, minn meta nħoloq.

$ setsid sleep 10m
$ ps -ef | grep sleep

Issa, meta terġa' tidħol fis-sessjoni, xorta ssib dan il-proċess għaddej.

$ ps -ef | grep [s]leep

Konklużjoni

X'modi tista' taħseb biex iżżomm il-proċess tiegħek għaddej anke wara li toħroġ mis-sessjoni SSH? Jekk hemm xi mod ieħor u effiċjenti kif tista' taħseb, semmih fil-kummenti tiegħek.