Lanjutkan tugas / pekerjaan latar belakang SSH saat menutup SSH

27

Saya memiliki pertanyaan yang sama seperti di sini tetapi bahkan lebih dari itu.

Jika saya keluar / keluar dari koneksi SSH, saya perlu program saya berjalan di latar belakang. Sebelum keluar, saya mengetik bgdan jobsmemeriksa latar belakang menjalankan tugas, tetapi setelah keluar dari SSH, program tidak berjalan, ditutup ketika saya menutup jendela SSH.

Apa yang bisa saya lakukan jika saya ingin program saya tetap berjalan setelah menutup jendela SSH? Saya menggunakan nohup screentetapi juga tidak berfungsi, atau apakah saya kehilangan sesuatu?

Huei
sumber
Selamat Datang di Pengguna Super! Tolong jangan masukkan jawaban Anda ke dalam pertanyaan. Posting itu sebagai jawaban di bawah ini sekali Anda dapat (dalam sekitar 7 jam) menggunakan tombol Jawab pertanyaan Anda . Terima kasih. (Perhatikan juga bahwa tidak perlu menambahkan <br/>s ke kiriman Anda. Cukup buat paragraf sesuai kebutuhan. Dan saat Anda berada di sana, silakan gunakan huruf besar yang tepat. Itu membuat kiriman Anda lebih mudah dibaca.)
slhck
BTW tidak perlu digunakan bgatau nohupsaat digunakan screen. Juga pertanyaan ini terkait.
justbrowsing
Anda membuat periksa utas ini @ stack overflow stackoverflow.com/questions/285015/…
Ashildr

Jawaban:

46

Bila Anda menggunakan screenAnda perlu melepaskan dengan CTRL+A+ Dsebelum Anda keluar ssh.

Atau, jika Anda ingin menjalankan proses langsung dengan layar yang dapat Anda gunakan

screen -dmSL [session name] [commands]
  • -d memulai sesi layar dan segera melepaskannya
  • -m memaksa membuat sesi layar baru
  • -S memungkinkan Anda memberi nama sesi sesi
  • -L nyalakan logging ke ~/screenlog.0

contoh:

screen -dmSL workstuff myscript.sh

Anda kemudian dapat:

lanjutkan nanti menggunakan screen -x workstuff

atau

periksa file log less -r ~/screenlog.0

hanya browsing
sumber
14

Gunakan tmux. Saya bahkan tidak yakin apakah screenmasih dalam pengembangan aktif. Ini semacam hal preferensi, tetapi sebagai seseorang yang menggunakan tmux, saya dapat bersaksi bahwa itu diatur dalam sekitar 5 menit, dan bekerja dengan sempurna.

Pada sistem berbasis Debian (pada mesin jarak jauh):

sudo apt-get install tmux

lalu masuk tmuxuntuk masuk, jalankan proses apa pun yang Anda butuhkan, dan tekan Ctrl+ Blalu D(ini meninggalkan sesi tmux). Kemudian, Anda dapat keluar dari SSH.

Ketika Anda perlu kembali / memeriksanya lagi, mulai SSH, dan masukkan tmux attach. Ini akan membawa Anda kembali ke tmuxsesi Anda .

tmuxmemiliki lebih banyak kemampuan, seperti yang dijelaskan di sini. Tapi, ini seharusnya bisa menyelesaikan masalah langsung Anda.

Semoga berhasil!

Terbukti
sumber
7

Akhirnya, saya menyelesaikannya menggunakan screen:

Dalam mode layar, lepaskan menggunakan CtrlAD. Kemudian Anda bisa menutup jendela SSH.

Huei
sumber
5

nohup use: Perintah pertama di bawah ini memulai program abcd di latar belakang sedemikian rupa sehingga logout berikutnya tidak menghentikannya.

$ nohup abcd &

$ keluar

Ashildr
sumber