GNU/Linux >> Belajar Linux >  >> Linux

Ssh – Bagaimana Cara Menyangkal Proses yang Berjalan Dan Mengaitkannya ke Shell Layar Baru?

Saya memiliki program yang berjalan pada shell SSH. Saya ingin menjedanya dan dapat membatalkan jeda eksekusinya saat saya kembali.

Salah satu cara yang saya pikirkan untuk melakukannya adalah dengan mentransfer kepemilikannya ke shell layar, sehingga membuatnya tetap berjalan di sana.

Apakah ada cara lain untuk melanjutkan?

Jawaban yang Diterima:

Anda dapat mencabut “kepemilikan” program dari shell dengan disown bawaan:

# press Ctrl+Z to suspend the program
bg
disown

Namun ini hanya memberitahu shell untuk tidak mengirim SIGHUP memberi sinyal ke program saat shell keluar. Program akan mempertahankan koneksi apa pun yang dimilikinya dengan terminal, biasanya sebagai aliran input, output, dan kesalahan standar. Tidak ada cara untuk memasang kembali itu ke terminal lain. (Layar bekerja dengan mengemulasi terminal untuk setiap jendela, sehingga program dilampirkan ke jendela layar.)

Dimungkinkan untuk memasang kembali filedescriptors ke file yang berbeda dengan melampirkan program di debugger (yaitu menggunakan ptrace ) dan membuatnya memanggil open , dup dan close . Ada beberapa alat yang melakukan ini; ini adalah proses yang rumit, dan kadang-kadang mereka malah akan menghentikan prosesnya. Kemungkinannya termasuk (tautan yang dikumpulkan dari jawaban ke Bagaimana saya bisa menyangkal proses yang sedang berjalan dan mengaitkannya ke shell layar baru? dan Bisakah saya nohup/menyaring proses yang sudah dimulai?):

  • ambil (dan cryopid yang lebih ambisius)
  • neerc
  • mengalihkan
  • reptir
  • retty

Linux
  1. Cara memprogram dengan Bash:Sintaks dan alat

  2. Bagaimana Mengizinkan SFTP dan melarang SSH?

  3. Bagaimana cara menghentikan proses layar di linux?

  1. 5 Cara untuk Menjaga Sesi dan Proses SSH Jarak Jauh Berjalan Setelah Terputus

  2. Bagaimana Cara Memulai Ulang (atau Mengatur Ulang) Proses yang Berjalan Di Linux?

  3. Bagaimana cara melepaskan sesi ssh tanpa mematikan proses yang sedang berjalan?

  1. Bagaimana cara membuat daftar sesi layar yang sedang berjalan?

  2. Bagaimana saya tahu jika saya menjalankan shell bersarang?

  3. Bagaimana menjalankan Node.js sebagai proses latar belakang dan tidak pernah mati?