ฉันมีการscp
ถ่ายโอน (จากเซิร์ฟเวอร์ระยะไกลหนึ่งไปยังอีก) นั่นค่อนข้างใหญ่
ดังนั้นฉันอาจต้องการปิดคอมพิวเตอร์ที่ฉันใช้คำสั่งนี้จะสิ้นสุดการถ่ายโอนหรือไม่ ฉันssh
สามารถเข้าถึงเชลล์โดยใช้โปรแกรม Bitwise
ฉันมีการscp
ถ่ายโอน (จากเซิร์ฟเวอร์ระยะไกลหนึ่งไปยังอีก) นั่นค่อนข้างใหญ่
ดังนั้นฉันอาจต้องการปิดคอมพิวเตอร์ที่ฉันใช้คำสั่งนี้จะสิ้นสุดการถ่ายโอนหรือไม่ ฉันssh
สามารถเข้าถึงเชลล์โดยใช้โปรแกรม Bitwise
คำตอบ:
มีวิธีแก้ปัญหามากมาย
scp
ถ่ายโอนตามปกติbg
)disown
)exit
) และกระบวนการจะยังคงทำงานบนเครื่องระยะไกลข้อเสียอย่างหนึ่งของวิธีการนี้คือไฟล์ descriptor สำหรับ stdout และ stderr จะยังคงมีการอ้างอิงไปยัง tty ของ ssh session ของคุณ เทอร์มินัลอาจค้างเมื่อคุณพยายามออกเนื่องจากสิ่งนี้ คุณสามารถหลีกเลี่ยงปัญหานี้ได้โดยพิมพ์~.
เพื่อบังคับให้ปิดไคลเอ็นต์ ssh ของคุณ (ลำดับการยกเว้นนั้นจะต้องเป็นไปตามบรรทัดใหม่ ... ดูเพิ่มเติม~?
) หากกระบวนการที่คุณละทิ้งการเขียนไปยัง stdout หรือ stderr กระบวนการอาจออกก่อนเวลาอันควรหากบัฟเฟอร์ tty ล้น
หน้าจอ GNUสามารถใช้เพื่อสร้างเซสชันเทอร์มินัลระยะไกลซึ่งสามารถถอดออกและทำงานต่อบนเซิร์ฟเวอร์หลังจากที่คุณออกจากระบบ จากนั้นคุณสามารถกลับเข้าสู่เซิร์ฟเวอร์ในภายหลังและใส่กลับไปที่เซสชัน
screen -D -R <session_name>
เริ่มเซสชั่นหน้าจอscp
ถ่ายโอนตามปกติexit
)หากต้องการแนบเซสชันอีกครั้ง:
screen -D -R <session_name>
nohup
ดูคำตอบโดยใช้
นี่เป็นวิธีแก้ปัญหาที่ดีที่สุดหากนี่เป็นภารกิจที่คุณต้องการทำให้เป็นอัตโนมัติ
screen -r <session>
ทำ ... ดังนั้นสิ่งที่-DR
แตกต่างจากการ-r
ที่มันสามารถกำจัดพวกเขาได้? ไม่เพียงแค่ติดตั้งใหม่และล้มเหลวหากผู้ใช้รายอื่นอยู่ในนั้น
ใช่มันจะถูกยกเลิก วิธีแก้ปัญหาเพื่อรักษาเซสชันเทอร์มินัลโดยไม่ต้องเชื่อมต่อคือscreen
โปรแกรม:
SCREEN(1) SCREEN(1)
NAME
screen - screen manager with VT100/ANSI terminal emulation
SYNOPSIS
screen [ -options ] [ cmd [ args ] ]
screen -r [[pid.]tty[.host]]
screen -r sessionowner/[[pid.]tty[.host]]
DESCRIPTION
Screen is a full-screen window manager that multiplexes a physical ter‐
minal between several processes (typically interactive shells). Each
virtual terminal provides the functions of a DEC VT100 terminal and, in
addition, several control functions from the ISO 6429 (ECMA 48, ANSI
X3.64) and ISO 2022 standards (e.g. insert/delete line and support for
multiple character sets). There is a scrollback history buffer for
each virtual terminal and a copy-and-paste mechanism that allows moving
text regions between windows.
ดังกล่าวข้างต้นคุณสามารถใช้คำสั่งหน้าจอตัวอย่างเช่น:
user@server:~$ screen -S bigscptransfer
ser@server:~$ scp bigfile.dat server2:.
[detached from 5899.bigscptransfer]
user@server:~$ screen -r bigscptransfer
nohup scp shinto @ source: / home / data roose@target.example.com: / var / tmp / ไฟล์
หยุดคำสั่งชั่วคราวด้วย
CTRL + Z
ใส่คำสั่งแบ็คกราวน์พิมพ์:
BG
คุณสามารถตรวจสอบกระบวนการด้วย:
งาน
-D -R
screen
ฉันอ่าน man page และมันก็ไม่ได้ช่วยให้ฉันเข้าใจ:-D -R Attach here and now. ...