nohup tidak akan menampilkan prompt berikutnya dalam sesi SSH

Aug 20 2020

Asumsikan bahwa saya terhubung melalui SSH pada sistem Ubuntu jarak jauh. Saya ingin menjalankan skrip di sana menggunakan nohupjika koneksi potensial terputus dan mengarahkan lognya ke file. Perintah yang saya jalankan adalah

nohup bash myscript.sh > log.txt &

Kemudian, terminal mencetak PID dari skrip dan pesan:

nohup mengabaikan input dan mengalihkan stderr ke stdout

Kursor membeku di sana dan saya tidak dapat menjalankan perintah lain kecuali saya keluar dari sesi SSH dengan Ctrl+ Ddan masuk kembali. Saya lebih suka sesi SSH tetap terbuka dan melanjutkan ke prompt terminal berikutnya tanpa perlu masuk kembali. Apakah ada cara untuk mencapai hal ini?

Jawaban

1 roaima Aug 21 2020 at 03:39

Perintah ini berjalan di latar belakang seperti yang Anda harapkan. Namun, dalam contoh khusus ini ada kondisi balapan di mana pesan keluaran ditulis pecahan setelah prompt shell.

Hasil visualnya adalah prompt shell mendahului nohuppesan atau sepenuhnya ditimpa.

Hasil praktisnya adalah karena shell telah menuliskan promptnya, maka shell siap untuk perintah berikutnya. Anda dapat menekan Enter untuk menghasilkan prompt baru, atau cukup ketik perintah selanjutnya.