Nohup atas ssh tidak akan kembali


11

Saya coba lakukan

[me@myPc]$ ssh me@server "nohup myBashScript.sh &"

Tujuan saya adalah meluncurkan proses di server, dan kemudian segera kembali.

Ini tidak berfungsi: Pekerjaan dimulai di server, tapi saya masih mendapatkan output di myPc dan menunggu untuk selesai sebelum meminta saya untuk perintah lain.

Mengapa Seharusnya tidak! Adakah cara untuk menghindarinya?

  • myPc adalah RHEL6.2
  • server adalah ubuntu 10.04dan
  • keduanya berjalan openssh

Jawaban:


12

Selama input atau output masih terbuka, ssh akan membuat koneksi tetap terbuka. Untuk mengatasi ini, pastikan input dan output tidak terbuka.

Misalnya, gunakan ssh -ndan redirect output Anda:

ssh -n me@example.com "nohup myscript.sh >/dev/null 2>&1 &"

Bagaimana jika saya masih ingin myscript.shmemberi saya output, tetapi sesi ssh masih berakhir setelah skrip selesai? Dalam kasus saya, skrip itu sendiri memulai proses nohup, lalu kembali. Saya mendapat kesan yang ssh -Takan membantu saya melakukan itu.
Gauthier

@Gauthier Kemudian jalankan skrip tanpa nohup.
Michael Hampton,

Saya lakukan. Script memulai perintah lain dengan nohup dan &, lalu berakhir. Tapi ssh tidak kembali. Perintah yang dipanggil dalam skrip mengarahkan stdout ke file. Oh, tapi bukan stderr dan stdin, mungkinkah itu sebabnya?
Gauthier

Itu dia! Input dan output harus diarahkan.
Michael Hampton

Yang tidak saya mengerti adalah bahwa jika saya benar-benar masuk dan mendapatkan tty, mulai skrip yang memulai nohup & perintah, maka saya diizinkan keluar dari sesi ssh. Itu tidak mengeluh bahwa ada input dan output terbuka. Bukankah itu yang ssh -tseharusnya ditiru?
Gauthier
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.